Implement hazard pointers.

- Implement flagged wait-free refcounted pointers using the hazard mechanics.
- Hazard pointer storage is fixed size, decided at compile time.

llptr:
Implementation uses hazard algorithm to maintain reference counter
invariant without waiting.  The pointer interface is like std::atomic<T*>.
In addition to refcount pointer semantics, the pointers also support
tagging via flag bits.
Add flag-only bitwise operations to llptr.

This allows for modifying only the flags without requiring the more
expensive code path of reference acquisition.