websockets: serious code uglification to support versions prior to 0291eb3..d764e84.
In some environments we might be forced to run with really old
versions of libwebsockets. This causes some amount of pain as
as some of those features are quite essential for building a
reasonable abstraction on top of libwebsockets.
Most notably, versions prior to 0291eb3..d764e84 (Oct 19 2012)
do not support per-context user data. Since we need to associate
our context with that of libwebsockets we have to build an extra
mechanism for mapping between the two when user data support is
not available. We use an extra hash table to store our context
and use directly the (low 32-bits of the) libwebsocket context
pointer as the key to store and fetch it.