Validate user functionality

#### Validate User function
```js
app.configure(function() {
  app.use(couchUser({
    users: 'http://localhost:5984/_users',
    email: {
      ...
    },
    adminRoles: [ 'admin' ],
    validateUser: function(data, cb) {...}
  }));
});

```
validateUser allows you to specify extra validation other than username/password. For example, checking for greater than x number of login attempts. The first argument, data, is an object that has request, user, and headers fields. The reason we used the callback pattern is used to pass out the result is that you can do async calls within this function (like check another database, etc).
Example

``` js
validateUser: function(data, cb) {
  var MAX_FAILED_LOGIN = 5;
  var req = data.req;     //all the fields in data is captured from /api/user/signin callback function
  var user = data.user;
  var headers = data.headers;

  if(data.user.failedLogin > MAX_FAILED_LOGIN) {
    //fails check
    var errorPayload = {
      statusCode: 403,                           //if not included will default to 401 
      message: 'Exceeded fail login attempts',   //if not included will default to 'Invalid User Login'
      error: 'Forbidden'                         //if not included will default 'unauthorized'
    }
    cb(errorPayload);
  } else {
    //passess check
    cb(null);
  }
}
```