title: django allauth empty username causes duplicate key in postgress DB
body: <p>Django 1.8.16
  django-allauth  0.27.0
  Using postgres as database.</p>
  
  <p>My application does not use usernames, only e-mail addresses as user id.
  So I use following settings:</p>
  
  <pre><code>ACCOUNT_AUTHENTICATION_METHOD = 'email'
  ACCOUNT_USERNAME_REQUIRED = False
  ACCOUNT_EMAIL_REQUIRED = True
  ACCOUNT_UNIQUE_EMAIL = True
  ACCOUNT_EMAIL_VERIFICATION = "mandatory"
  ACCOUNT_USER_MODEL_USERNAME_FIELD = None
  ACCOUNT_USER_MODEL_EMAIL_FIELD = 'email'
  </code></pre>
  
  <p>Now when a new user registers, he uses his e-mail address.
  But when submitting the registration form, I get this error:</p>
  
  <pre><code>IntegrityError at /accounts/signup/
  duplicate key value violates unique constraint "auth_user_username_key"
  DETAIL:  Key (username)=() already exists.
  Request Method: POST
  Request URL:    http://swd.localhost:8000/accounts/signup/
  Django Version: 1.8.16
  Exception Type: IntegrityError
  Exception Value:    
  duplicate key value violates unique constraint "auth_user_username_key"
  DETAIL:  Key (username)=() already exists.
  </code></pre>
  
  <p>This says exactly what is wrong: The empty username already exists in the auth_user table, field "username", and it seems this is not allowed?
  But problem is that the username field is ALWAYS empty using above settings.
  So how can we get around this?</p>
  
  <p>I did not adapt the user model.</p>