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.
Whenever we bake a supermacaroon, we want it to be recognizable as such.
For that we use the 64bit unsigned integer that is used as the
macaroon's storage ID (or root key ID) and set the first 4 bytes to a
specific value that we can detect later on.