Highly experimental custom sign in

As a title says this is very experimental and I'm not sure if it actually going to make it to the core `gae-init` or in `gae-init-auth` or in a completely separate project.. since many people were asking for it.. I decided to give it a shot.

### Features/Requirements

- [x] Add password salt to the `Config`
- [x] Set password from profile
- [x] Update password from profile
- [x] Sign in using email/password
- [ ] Sign in using username/password
- [x] Check for unique email
- [x] Check for conflicts when duplicate email during sign in
- [x] Send conflict notification to the admins
- [ ] Sign up with email/password
- [ ] Reset/Forgot password
- [ ] Remember me for custom sign in
- [ ] Add `custom` field in the `auth_ids`
- [ ] Visual fixes to avoid eye bleedings


#### Demo: [custom.gae-init.appspot.com](http://custom.gae-init.appspot.com/)

#### Few things about this _experiment_:

- It's not finished and it might take a while
- There are no repeat passwords fields.. the latest trend says that they are annoying.. :)
- Bunch of things are subject to change and I'm open to any suggestions
- Since the visuals were never the top priority for `gae-init` I don't want to start creating bunch of custom css/js (stuff like transitions, client side validations, etc)
- The server side should be robust and bulletproof


``` python
if not user_dbs:
  return None
if len(user_dbs) > 1:
  flask.flash('We are sorry but it looks like there is a conflict with your account. Our support team is already informed and we will get back to you as soon as possible.', category='danger')
  task.email_conflict_notification(email)
  return False
return user_dbs[0] if user_dbs[0].password_hash == util.password_hash(password) else None
```
or
``` python
if len(user_dbs) > 1:
  flask.flash('We are sorry but it looks like there is a conflict with your account. Our support team is already informed and we will get back to you as soon as possible.', category='danger')
  task.email_conflict_notification(email)
  return False
try:
  return user_dbs[0] if user_dbs[0].password_hash == util.password_hash(password) else None
except IndexError:
  pass
return None
```