Code style changes;
Separated the Connection's higher layer from the Protocol's communication layer.
Added tests for the communication layer's primitives;
Implemented the sendVarint properly (it's not working for negative numbers, though);
Made the DEFAULT_CHARSET package private;