Adding new MD5Function based off MessageDigest for varchar.
Changes to make hashing more efficient.
Adding PhoenixIndexBuilder to handle full short-circuting.

Previously, short circuiting only work on the building the index side. However, that meant that
for every mutation we were still checking each KV to see if it was an index type. This lead to a
20% slowdown from the case where indexing codec wasn't even installed.

There is a little bit of work to be done here as we aren't completely smart about managing the
IndexMaintainers - we re-find the set of maintainers for each Mutation everytime we need them. Its
a little bit of an overhead, but not terrible. It can be fixed later if that's still a sticking point.
Merge pull request #429 from jyates/master

Adding PhoenixIndexBuilder to handle full index short-circuting.
Merge pull request #426 from walshms/master

Adding new MD5Function based off MessageDigest for varchar.