Authenticate via openid

It allows user to sign in using an openid provider from Google, Facebook, Novell

Multiple openids can be associated with a user (as long as they use the same email address)

User, while logged in, can add new openids to their account (this is useful for adding new openids that use a different email)

New openids are checked against database entries through email attribute, so if a user with email address Y had added an openid using an email address X, the user can sign in using any openid provider with the X email address.

Use the new Ruby 1.9 hash syntax.