Feature: Squashed commits that restructure the message flow. Now
messages are parsed on the application tier instead of the server tier.
The server tier just acts as a middle agent now.

Changed protobuf message ClientInfo from string to type byte.

Refactored server side for sending received messages from client to the application instead of parsing them.

Wrapped line under 79 chars in zmq_base.

Completed app-server-client communication wrt sync.

Added server_state module from u1db trunk.

Removed queue. Queuing messages directly on the socket itself.

Added sync module from u1db trunk.
Feature: Squashed commits that implement SyncResource. Not really a
resource. But maintaining the same name for easier follow up. Also added
u1db application logic for get_sync_info, sync_exchange and record_sync_info.

Added SyncResource class and response methods for handlers to get_sync_info_request and put_sync_info_request.

Added doc strings.

Added user_id to every message struct.

Fixed tests to comply with changes in protobuf message structs.

Added target_last_known_generation and target_last_known_trans_id to protobuf request messages. Also added tests for the changes.

Added last_known_target_generation and last_known_target_trans_id to AllSentRequest message. Modified tests accordingly.

Fixed import statement.

Fixed numbering of protobuf message fields.

Added source_replia_uid to AllSentRequest message. Modified tests accordingly.

Added u1db application logic to execute get_sync_info on the application side, insert docs from source and find changes to return to source, send docs changed at target to source and record_sync_info.