Update hash_ring sources from internal copy

- Update for kernel memory considerations (allocated externally, for
  locking / non-blocking reasons)
- Remove lock from data structure (again, for kernel locking
  considerations)
- Minimalize diff from internal copy to hashring.h
- Kernel is the default. Usable from userspace, but not a userspace-
  centric API
- Add compatability macros/fns for Linux userspace

- Quick hacks to tests to get them building / running with new API

- Update README