Redis key expiration has no guarantees of when the expired key is actually removed. In some instances, it is necessary to clean up resources as soon as the sessione expires. For example, when an HTTP Session expires we must ensure that the associated Web Socket sessions are closed. Sessions are now mapped to their expiration times and a background task is used to clean up the sessions as they expire. Fixes gh-59