failing test for session expiry
separated SessionDocument from SessionStore
rename to CouchRest::Session::Store

move internal document class into that namespace
add Session::Document.load(sid) and .build(data)
refactor: separate utility methods and act upon instances

By first initializing and then calling .update and .load on the instances we get rid of the class methods for database etc.
hand down all options - not just marshal_data
use similar doc format for marshalled and unmarshalled

Now the Couch Document has three keys:
* marshalled: whether the doc has been marshalled or not
* expires: time of expiry (not used yet)
* data: payload - the session itself. Either marshalled or not
use allocate instead of new with nil.
expire sessions if expire_after is given

We store the expiry date with the session. When an expired session is requested we destroy it and return a new session instead. In order to keep the database from growing with expired sessoins that have never been requested after they expired we'll also need a cleanup task to run in parallel.
Version 0.1.4: expires sessions
Merge pull request #1 from azul/feature/3685-expire-sessions

Feature/3685 expire sessions