Enable injection of the underlying *redis.Pool
Return error on Close
Generate session.ID in New instead of Save

In environments where redis is sharded across multiple machines and the
shard key is the session.ID, it is necessary to know this key before
picking the server to which the write is going.
Merge branch 'di-pool'