Use functional style, avoid in-place modification
Add mdui:Logo model
Add mdui:InformationURL model
Pluralise association names for UiInfo
Add mdui:PrivacyStatementURL model
Enhance MDUI models and DRY validations

Ensure that all MDUI models which don't extend a common base exhibit
standard model behaviour of storing date of creation and update.

DRY up some validtion code.
Add mdui:DiscoHints model
Add mdui:IPHints model
Add mdui:DomainHint model
Add model for mdui:GeolocationHint
Reference DiscoHints from IDPSSODescriptor
Change Keywords model name to KeyWordList

This makes working with pluarlisation in the underpinning rails
framework much easier and actually better represents what the model
is storing in the database.
Factories to create real-world MDUI instances