This commit does a few things:
1. Instead of deriving IDs using the first 4 bytes of the session's
serialised local pub key, we instead use bytes [1:5] in order to skip
the first byte which is either 0x02 or 0x03. This results in a
greater entropy set.
2. We also add a new index from ID to key and we write to this index
each time a new session is added.
3. We add a `ReserveNewSessionID` method to the session store which will
grind through private keys until it finds one that does not clash
with the current ID set.
4. A migration is added to back-fill the ID-to-key index. If any old
sessions are found that _do_ have a colliding ID, they are sorted by
created time and all but the newest session is revoked. Only an entry
for the newest session will be added to the ID-to-key index.