ck_ring: Move the ring buffer outside of the ck_ring_t

Remove the ring buffer from the struct ck_ring, it is now required to
explicitely pass the ring buffer for enqueue/dequeue. That can be useful for
systems with multiple address spaces.
ck_spinlock: Add a HCLH implementation.
ck_spinlock: Commit the missing HCLH bits.
ck_spinlock: Simple whitespace changes (wrap long lines).
ck_spinlock: First round of improvements to ck_hclh.

* Drop unnecessary volatile stores.
* Use more expressive ck_pr_fence_X_Y semantics.
ck_spinlock: Minor readability changes to ck_hclh.
regressions: Mark the core variable as unused, to appease the compiler.
ck_spinlock: Revert previous change, do not splice too early.
ck_ring: Minor style change.
ck_ring: Prefer treatment of ck_ring_buffer_t as an opaque type.
regressions/ck_ring: Drop template variants.
regressions/ck_ring: Always treat buffer as opaque.
configure: Add a generic way to detect VMA bits.

In configure, when we're not running on a system that does provide the number
of virtual bits available, for x86_64, try to compile a program that uses
cpuid to get the information.
Merge branch 'cognet' of git.concurrencykit.org:ck