Check for a custom username-field when generating unique usernames

Respect USER_MODEL_USERNAME_FIELD when generating unique usernames in
the allauth/utils.py generate_unique_username function
Removed hardcodedness with respect to first/last_name
SocialAccountTests run with a custom user model (closes #300)
Extra check for user model fields (related to #300)
merge with upstream