Add GSettings schema

Leave the keys that depend on enums and flags commented for now, as the
enum values need to be generated with glib-mkenums.
Use GSettings for most application settings
Generate enum descriptions with glib-mkenums
Generate GSettings enum descriptions