WIP: Adding user login via an OAuth 2.0 provider

Currently Google and Github is supported, soon to add Facebook. More docs and tests are required.