Update user info when signing in via OAuth

:fork_and_knife: 

When a user signs in, we'll update their info. Note that the code's a little defensive around updating `public_key`. This is because the `.find_or_create_from_oauth` method is designed to be used with any OAuth hash, most of which will not contain a `public_key`. Perhaps there should be two methods? Or perhaps this method should not be so generic? Your thoughts, @raskchanky, @tristanoneil, @brettchalupa?