Add feature to support email-less omniauth backends

If backend do not provide auth.info.email, We generate it from auth.info.nickname and email_domain option passed to omniauth provider (if it's passed).

You should be able to pass this option to all allready implemented omniauth providers and this commit fixes it for ldap.

This feature is usefull in environments wherre login is done by LDAP, pam, shibboleth or similar and that backend is not providing email. (ldap is missing email field. pam can't normally know it. etc..)

This more generalized version of #2589

This PR is untested, but it's copy-paste from version that is in production in our system (https://github.com/raphendyr/gitlabhq/commit/c5c9136bb469137f40aae7019b97fe199e78bf9e).