Oauth 2 support

This branch allows mines to support delegated authentication using identity resources protected by oauth2 authentication.

This means that a user can log in by allowing InterMine to access information about who they are from a service they belong to.