Introduce Devise for authentication.

Replace the homegrown authentication with Devise. Devise provides password
reset, email/password registration and other functionality that most
applications with user accounts require. It is a well-tested, widely used and
documented library.

This should decrease the barrier of entry to contribute to the project because
there is a high chance that the contributor is familiar with Devise. The
contributor will not have to worry about understanding how the homegrown
authentication works. If the user is not familiar with Devise, the README and
documentation surrounding it can help get them up to speed.

Those running Supermarket can trust that its authentication library is
maintained and secured.

Implementation notes:

* Replace require_valid_user! with authenticate_user!
* Use Devise's test helper to sign out users
* Redirect to Devise's sign in path
* Remove 3rd-party account registration.
* Add specs for the Accounts controller and document it.
* Change provider callback route to the AccountsController.
* Wrap configure_permitted_parameters at 80 cols.
* Configure Devise's secret key.
Allow users to link GitHub and Twitter accounts.

This replaces the process of oAuth account registration and authentication.
Users connect GitHub accounts to sign CLAs. Users connect Twitter accounts for
funsies.

Implementation notes:

* Move User#account_from_oauth back into the model.
Remove User#account_for.

All linked GitHub and Twitter accounts are displayed on the user's profile with
the Accounts.for scope.