Oauth2 login

Before this is commited it would be useful if someone can have a look over it and see if I missed anything.

Changes to support oauth:

  * The user & user_emails tables gets two extra fields: oauth_uid & oauth_provider
  * Backend::create_user has two extra parameters on the end $oauth_uid & $oauth_provider both with default values of null
    * When a new oauth user is created there is no email notification
    * If a new oauth users username is taken / not provided they are presented with a page asking for a new one
  * Flyspray::checkLogin has a extra parameter $method (values: native & oauth) with the default value of 'native'
  * If an oauth user requests a password the user is redirected to the home page with an error telling them they registered using Github / Google / Facebook.
  * If an oauth user tries to change there password from the profile page an error is shown. Also the change password part of the user profile is hidden.