Part of an ongoing cleanup of server/client codecs

There is one breaking change, the removal of the mailbox functionality. This was honestly too confusing and if apps want to do this, they can do it themselves. The state machine should be explicit about what commands it accepts or rejects in any state.