Getting private GitHub email if public email not set.
Adding name and email update to User.

Also fixing a variety of bugs and warnings which became apparent.
Updating name and email on login if they're not already populated.