KEYCLOAK-25 KEYCLOAK-27 Social login/registration improvements

- Added another relationship type represented by SocialLinkModel (SocialLinkRelationship for Picketlink IDM integration) which represents binding between user and one social provider/username. User can have N social links, which means that single user can have many wired social accounts  (also many wired social accounts of same social provider)

- Added boolean realm option "automaticRegistrationAfterSocialLogin" where administrator can specify whether each user is automatically registered after successful social login (this means that all attributes of user are automatically prefilled from social network and his password/TOTP is initially not set) or whether user is redirected to registration screen with pre-filled attributes where he can change or fill missing data including credentials. Added flows for support of both options.

- Now username is generated from
-- Facebook username in case of Facebook
-- Google email in case of Google
-- ScreenName in case of Twitter
but users can change generated username in case that "automaticRegistrationAfterSocialLogin" is false