Base implementation for new protocol

Step 2 of n in the new protocol (#81)

This implements the first parts of the new protocol described by #118. At this point, it's all new code, and is not used in any way. It's compiled by adding `DEFINES+=PROTOCOL_NEW` to the qmake command, but it won't change behavior at all.

Please review carefully and point out anything that seems fragile.
Maybe make evenNumber = bool(id % 2), and check if (evenNumber == (side == Connection::ServerSide))? it's still hard to parse, but makes slightly more sense to me.