Merge pull request #807 from hintjens/master

Mostly, improving zloop scalability
Problem: No builtin way to valgrind or gdb
Solution: Add the `make memcheck` and `make debug` targets
Problem: CZMQ uses deprecated zsocket internally
Solution: Remove all internal uses of zsocket.h and zsockopt.h
Note: (Did not remove internal usage in other deprecated classes)
Merge pull request #809 from jemc/valgrind_gdb

Problem: No builtin way to valgrind or gdb
Merge pull request #810 from jemc/purge_deprecated

Problem: CZMQ uses deprecated zsocket internally
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).