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.