Persist settings

use the framework settings services to save the user settings for the app. we'll see if having to explicitly enumerate the driver-specific settings gets annoying over time, since we're not dynamically loading modules I don't know that this is a big deal

one nice thing is that the app defaults are in the config file, so it will be easy to package versions with settings specific to a device

fixes #7