Problem: method names getting ugly and long

Adding depth for key management is a great idea. However it should
not make other aspects more complex. Most people do not need special
handlers for keys, so will never use these _set_key methods. So they
should not be paying the extra cost of using _item in the other
methods. Further, this leaks into other containers that don't use
keys at all.

Solution: keep the majority case methods short and sweet, use the
longer names for the rarer cases.

Also, consistency, zhash_set_key_hasher as it is for keys.
Problem: zlist needs cleaning up

- zlist_sort left in inconsistent state
- tabs in code
- description of zlist_append and _push weren't accurate
- zlist_free_fn should be deprecated (ugly and useless)

Solution: done that.
Merge pull request #653 from hintjens/master

Cleanups