oAuth accounts

This meets the requirements of #27 

### Features

* Simple extensible system for adding new providers
* Register via oAuth
* Login via oAuth
* Associate any number of oAuth accounts with a local account
* Validation via Email for accounts merged into existing accounts

For security if a user tries to login to the site via a new oAuth account and an email on that oAuth account matches the email of a local account the user will be sent an email to approve the validation to prevent users from hijacking other users accounts with *fake* third party accounts.

Makes use of the [Lusitanian/PHPoAuthLib](https://github.com/Lusitanian/PHPoAuthLib) package.

At present this code is not unit tested.

### Missing features

* List of a users connected accounts on profile
* Option to disassociate an oauth account