Draft: Implement GitLab auth identity concept
What does this MR do and why?
This merge request adds a first class concept of Gitlab::Auth::Identity to describe an identity which is about to get authenticated using one of many authentication methods we support at GitLab today.