Introduce the UserDetails domain object

This also implied adding code to allow setting the following fields on user creation: / timeZoneId, greeting  and comments
Apply UserDetails object to updateIncompleteUser and add the locale/languageId field inside
Introduce SocialSns within UserDetails
Apply UserDetails to validate()