Allow to pass key and use_prefix as options to EncryptedColumn
Improvements to models and collections for settings

This commit adds encryption and vaildation to models. It also gives
ability to register collections on settings, so they can be serialized
into JSON before saving settings.
Extract common behavior to OverwritableMethodDefinitions module
Move classes from Repository::Settings to separate files
Add Repository::Settings::Model#update method