Add custom serializer configuration

Add new config option `:serializer` for specifying a serializer for the redis
session storage.

The possible values are:

* `:json` - serialize cookie values with `JSON`
* `:marshal` - serialize cookie values with `Marshal`
* `:hybrid` - transparently migrate existing `Marshal` cookie values to `JSON`

Thanks to Łukasz Sarnacki for the work on the rails cookie storage json
serializer.
Merge pull request #16 from crystalcommerce/custom-encoder-class

Custom encoder class
Add docs for serializer option #25
Merge pull request #26 from crystalcommerce/serializer-docs

Add docs for serializer option #25
Adding custom handling capability for session load errors
Version bump since adding functionality
Fast-failing when handlers are not callable
Changes per feedback on #24
Tweaks to specs after rebasing on top of #16
Fix markdown error
Always destroying sessions when load fails

plus consolidation of various destroying methods
Updating docs for latest on_session_load_error signature
Merge pull request #24 from modcloth/marshal-load-handling

Adding custom handling capability for session load errors
Adding notes for v0.6.0 release
Merge pull request #27 from modcloth/v0.6.0-prep

Adding notes for v0.6.0 release
Handling ActionDispatch::Request::Session::Options objects

by converting to hash before merging in extra options.
Merge pull request #29 from modcloth/handling-actiondispatch-request-session-options

Handling ActionDispatch::Request::Session::Options objects
Prep for v0.6.1 release
Merge pull request #30 from modcloth/v0.6.1-prep

Prep for v0.6.1 release
Changed redis.get to redis.setnx, in order to instead of looking if the key exists try to set it up without any data and avoid the **unlikely** raise condition of somebody else asking for the same key.