create client certificates with generous not_before (fixes #5884)
list identities based on search only
Merge pull request #173 from azul/feature/unblock-handles

Allow admins to unblock handles
store expiry with cert fingerprints

We used to store the creation date but this way it's easier to query for non expired certs
Identity view cert_fingerprints_by_expiry

Also move complex identity views into js designs.
Includes test.

Here's how you would query it from outside rails:
```
$ curl
'localhost:5984/identities/_design/Identity/_view/cert_fingerprints_by_expiry?startkey="2014-07-05"'
{"total_rows":4,"offset":1,"rows":[
{"id":"6c9091d4f13eaeaa6062c9d0528fd34d","key":"2014-07-05","value":"fingerprint"},
{"id":"6f3aa93828b4f6978d551f2623b9d103","key":"2014-07-05","value":"fingerprint"},
{"id":"b6cafacfa65042679691cd5065fb19e3","key":"2014-07-07","value":"fp"}
]}
```

Note that the expiry will be used as the key. So you should use the
current data (or yesterday) as the startkey to get all fingerprints that
have not expired yet.

The fingerprint itself is in the value. No need to include docs.
rename warden extension to patch the original

the Warden::SessionSerializer was not getting loaded at all because we had a file by the same name. We want it to get loaded and be patched instead.
separate login_required from access denied response

They are very different. Let's handle them in different methods.
SessionsController#unauthenticated for 401s

Warden will catch all 401 responses at the rack level and call the app for failures. By default that is SessionsController#unauthenticated.

I'm sticking with this. If we ever have other rack endpoints they can just send a 401 and the webapp will take care of the message.

Other options would have been to tell warden not to take care of 401 either during initialization or by calling custom_failure! in the login_required method.

We probably want a response that has a unique identifier for the error to process by the client and a translated message later on. For now i think the 401 suffices to identify the issue at hand.
render valid json error if provider file not found
use cucumber; initial ConfigsController
send static list of configs for now

Also added authentication steps to cucumber
move unauthenticated api endpoints into separate feature