ck_hs: Add ck_hs_move operation.

This operation moves ownership from one hash set object
to another and re-assigns callback functions to developer-specified
values. This allows for dynamic configuration of allocation
callbacks and is necessary for use-cases involving executable code
which may be unmapped underneath the hash set.

The developer is responsible for enforcing barriers and enforcing
the visibility of the new hash set.