consent

First stab:

remove consent message type, send instance handshake instead and include consent state (I'm not fully convinced this is nicer than what we had, I'd be happy to revert this)
remove reconnection code.
only store and restore user action bits in storage.
minor code cleanups.
It seems like client-id is a property that is logically owned by a 'remote-instance'. I can see that a network would have an index of these for delivering messages, but having client ids owned purely by the user seems like an odd choice.