Try to make sense of this bullshit

Removed magic number checking and map hashing thingy for now. Client::recv()
is being refactor into what would probably be more appropriately named
Client::exec(). This fixes clients sitting idle if there's nothing to read
from their socket.
Reimplemented magic number checking

 * Switched the client buffer to a deque becaue pop_front seems useful
 * Renamed Client::recv to Client::exec
Updated docs for checkProtocolVersion
Implemented JSON message parsing