Refactor session key storage

Refactor session key storage to actually have an interface that isn't
map, and provide reasonable lookup functions, as well as update the
consumers of those functions.
This also implements session timeouts.

Change-Id: Ica46716805782cfbb7c4ee5569bc7e468c260bc3
4 files changed