Problem: confusing delayed compute of timer 'when'

There is no functional reason to delay the calculation of the when
property for new timers. However this makes the code more complex
than it has to be.

Solution: calculate the 'when' on new timers, and simplify the rest
of the code a little.

Note: this also lets us insert timers correctly into a sorted list.
Problem: ticket constructor isn't consistent

Solution: use 'self' in constructor, as we usually do.
Problem: semantics for move / ordered are confusing

I'd rather have clean semantics for moving to start and end
of list, and then separate methods for inserting and moving
to start or end of list, sorting into place.

Solution: remove 'sorted' argument from move_start/move_end.
Problem: zhash got messy

The Features added over the last months made the API complex
and nasty (void * for keys, really?) and broke compatibility.

Solution: revert zhash to its v2 simpler state, which can be
deprecated or perhaps kept as a "simple hash" container. All
the nasty stuff should be kept for zhashx.

Also switched to using zhashx internally in CZMQ (not in places
where it affects the API).