Refactor of the external logins 

Had this branch lying around for a while. The changes decouple the OAuth web security stuff from our code, and also allow the icons for the OAuth providers to be configured in the app settings.
This has a lot of dependencies. It looks to me (from this constructor signature alone, I've not yet delved in in any more detail) as though the account controller needs two things:

1. Something to convert a `LoginMethod` to a `LoginMethodViewModel`.
2. Something to complete an authentication request, returning a representation of a User.

Ok, so maybe it's three things and there are two controllers to be split out: one that handles authentication, one that handles Users (e.g. profile data).