omcache: retry requests to ketama selected servers if flush fails

Don't drop the requests on the floor if the first server selected by ketama
can't be used.  This is especially useful at startup in case one of the
memcache servers is offline.

Also adjusted the severity levels of some connection related log messages.
headers: fix embarrasing typo in include guards
md5: add an md5 implementation to support libmemcahced weighted ketama
ketama: make distribution functions pluggable

Distribution function can now be configured in the API, the default is still
the same ketama function that's compatible with current libmemcached
versions' MEMCACHED_BEHAVIOR_KETAMA.

Also added two other distribution methods, one which is compatible with
libmemcached's MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED when all server weights
are 1 (OMcache does not support server weights at the moment) and one which
is compatible with MEMCACHED_BEHAVIOR_KETAMA in libmemcached versions prior
to 1.0.10 where hosts were hashed usin MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED
but keys were hashed with Bob Jenkins' one-at-a-time algorithm which is also
used by the basic MEMCACHED_BEHAVIOR_KETAMA.