Enhance hash-type directive with an algorithm options

Summary:
In testing at tumblr, we found that using djb2 hashing instead of the
default sdbm hashing resulted is better workload distribution to our backends.

This commit implements a change, that allows the user to specify the hash
function/algorithm they want to use. It does not limit itself to consistent
hashing scenarios.

The supported hash functions/algorithms are sdbm (default), djb2, wt6.

For a discussion of the feature and analysis, see mailing list thread
"Consistent hashing alternative to sdbm".

Note: This change does NOT make changes to new features, for instance,
applying an avalance hashing always being performed before applying
consistent hashing.