Refactor the `User` class of all OAuth related providers
As requested by @DouweM here: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4498/#note_12350141
We need to do a refactor of the OAuth::User
, LDAP::User
, and SAML::User
classes to make them more reliable and consistent. Specifically the gl_user
method needs to improved. Behavior varies widely across providers and can cause weird results.
cc @dblessing