Added post_get and post_set methods for Options
Option base class now uses abc for abstract methods
Tidied up Option exceptions
Added BooleanOption for Configs
Added FolderOption for Configs
Added ChoiceOption for Configs
Configs are no longer responsible for saving themselves

This commit introduces two new objects: ConfigManager and
ProfileManager. The ConfigManager is responsible for loading and saving
config classes. The ProfileManager has methods for localizing the
ConfigManager's files to a specific profile folder.