Refactor preferences system

  • remove the need for dumb things like preferences["allowInstantPay"] === "true" where we're checking against the string "true"

  • ensure retrieved preferences values are always valid (prevent issues like #92 (closed))

  • ensure preferences can be added/removed without clobbering user settings

  • probably move most settings to SQL (see #149 (closed))