Geo - Refactor Gitlab::Geo::OauthSession

In https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8157 we introduced some private helpers classes but Gitlab::Geo::OauthSession still have a lot of responsibilities. We should refactor this class to extract each responsibility in its own class.