Get all user emails including the unverified emails.

Some developers may want to use the users' unverified emails. New fields were added to give the developer this information without modifying the old fields.
Put back the things that were mistakenly removen from the jaredhanson master and removed the unncessary user-agent
 Code re-ordering and optimization. Optimize email returned in the emails field of profile.

The first email returned in emails fielf of profile will be chosen based on the following priority:
1. Verified Primary
2. Verified
3. Unverified Primary
4. Unverified
Merge branch 'refs/heads/patch-1'