First pass at the spade edge protocol

A shim to represent / serialize and / deserialize our events, to be used by the edge when communicating with the processor tier.
Yeah, though along the lines of my response to @aasted "we need to think about this". Right now, given the tight coupling between the edge and the processor I'm inclined to continue along this path as it isn't *incredibly* wrong, it is just "likely to be wrong".