Change header to context

Change header to context, as more information than just the header are
needed (e.g. extension-xname for extensions).
Fix manually written request opcode

Update manually written requests to use the Request protocol instead of
having it as part of request records. This commit should have been part
of ebb7941f0df5444407bceead4559329e398cb2fe.
Change from -XCB to -XCLJB

The name of the constant for the protocol informations (i.e. major/minor
version, extension name, etc.) is changed from -XCB to -XCLJB to be
consistent with name of this library.
Fix swapping of extension names parameters

Fix swapping of extension names parameters extension-name and
extension-xname.
Fix lookup of empty SKIP map

The map SKIP is used to lookup whether a request, event, etc. should be
skipped when parsing from XML to IR. For an extension with nothing to
skip, the result of the lookup will return nil.

Return an empty set instead of nil to fix NullPointerException.
Fix naming of request functions

Fix naming of request functions so that requests with names containing
acronym will be beautified correctly. E.g. GetXIDRange from XC-MISC will
turn into get-xid-range instead of get-xidrange.
Fix detection of primitive types

The old typemap combines primitive and composite types together so that
it's impossible to know whether a type specified in XML is a primitive.
The new typemap separates the primitive and composite types.

Checking of primitive types was only checking newly defined primitives
in the current XML file, causing any references to primitives in other
files to be mis-categorized as composite. Now both newly defined
primitives (in PRIMITIVE-TYPES) and primitives from outside (in TYPEMAP)
are checked.
Fix naming of namespace for generated protocols

Fix naming of namespace for generated protocols, so that e.g.
xc_misc.clj will have namespace name of xc-misc instead of xc_misc.
Fix dependency for generated protocols

Fix dependency so that instead of having every generated protocols
depending on xcljb.gen.xproto-types, e.g. xc-misc will depend on
xc-misc-types.
Implement sending/receiving extensions

Implement sending/receiving of extension protocols through:
  - Read functions (i.e. reply/event/error) dispatching on extension
    names along with opcode/event-number/error-number. The extension
    name used for xproto is nil.
  - Caching of extension informations (as returned by
    xproto/query-extension) in connection object.
  - Sending of extension requests through xcljb.conn-ext/send, which
    will retrieve extension information on cache miss.
Fix clearing of old reply promises on sequence wrap

Sequence numbers only takes up two bytes, therefore will eventually
wrap. Clearing old reply promises therefore cannot compare based on
less-than, as it'll fail when the wrap-around occurs. The fix is to
clear everything upto, but excluding the current sequence number.
Regenerate xproto
Implement extension XC-MISC
Update README with new features
Bump version