Create invitations table in db

* required string token

[#14]
Add Invitation model

* generates random token before it saves

[#14]
Implement SignIn model

* It needs an omniauth auth hash and an invitation token
* It has a simple public interface: #user
* First it attemps to look up the user using the auth hash. If that
  fails, it verifies that an invitation exists with the provided token.
  If that succeeds, then a user is created with the provided auth hash.

[#14]
Add methods to User model

* These are needed satisfy the API expected by the SignIn model

[#14]
Nitpick URI consistency

* Yes, I have a problem.

[#14]
Persist given invitation token through flash

* Adds helper method to get the invitation token, first from the params
  and then from the flash

[#14]
Refactor authentication design to use invitations :)

* Now new users must provide a valid, unused invitation token in order
  to have their account created in Snapme. Ballin'

[#14]
Add invitation_requests table to db

[#14]
WIP