Fix empty requests generation

For requests which contains no content (e.g. QueryKeymap), a padding of
one byte is required. Otherwise to-frame and to-value will contain a
nil, which is invalid.
Provide "length" parameter in reading of replies

Provide the "length" parameter in the reply-reading functions, which is
required by e.g. GetImage and GetKeyboardMapping. The length parameter
has to be provided as is, i.e. not multiplied by 4, since the
interpretation of the parameter is not constant across all replies. This
also means that the size of a reply cannot (necessarily) be derived from
"length". The required number of padding needed to be read has as a
result been fixed.
Permit generation of GetImage and GetKeyboardMapping

Permit the generation of GetImage and GetKeyboardMapping, since the
"length" variable required in the replies is now available.
Regenerate xproto
Update README

GetImage and GetKeyboardMapping has now been implemented.
Add connection debug logging

Add connection setup and disconnected debug logging messages. Remove
channel closed logging message as it is not a significant event.
Fix incorrect parenthesis
The first content byte of reply is always unsigned

The first content byte of reply is always unsigned, for xproto version
1.8. This is good as the byte is read (along with sequence number,
length, etc.) in the socket read loop, which does not have the type
information.
Simplify valueparam to value conversion

Clojure's sort-by function is able to take any collection, therefore
there is no need to convert a map into vector before sorting.