Add support for "login with Facebook" and MS live

Annoyingly Facebook and MS Live accounts do not implement OpenID which is the correct way to do authentication. Therefore they are not covered by the existing implementation of third party authentication. Imho they are, however, important enough to (reluctantly) warrant some special casing to support them and make it easier for new users to create an OpenStreetMap account.

This implementation uses the OAuth2 standard to retrieve user information from either Facebook or a Windows Live account that can then be used for authentication. It reuses a lot of the openID infrastructure to simplify the code and minimize the special casing.

As it uses OAuth2 and OAuth requires applications to register with the provider, the website needs to be
registered with Facebook and MS Live to use this feature. The oauth app id and app secret are stored
in application.yml
Not just OpenID