Give the session store more control about creation of sessions.

This commit introduces a couple of functions that can optionally be added to a session-store implementation, to allow more control over the sessions.

    .isSecretRequired()
    .generate(secrect, fingerprint, callback)
    .create(sid, callback)
    .verify(sid, secrect, fingerprint, callback)