BUG/MEDIUM: backend: Update hash to use unsigned int throughout

When we were generating a hash, it was done using an unsigned long.  When the hash was used
to select a backend, it was sent as an unsigned int.  This made it difficult to predict which
backend would be selected.

This patch updates get_hash, and the hash methods to use an unsigned int, to remain consistent
throughout the codebase.

This fix should be backported to 1.5 and probably in part to 1.4.
(cherry picked from commit bd57a9f977f60fcf7818f462953da3740e3bd010)
diff --git a/include/common/hash.h b/include/common/hash.h
index 379bf89..7039ba5 100644
--- a/include/common/hash.h
+++ b/include/common/hash.h
@@ -22,8 +22,8 @@
 #ifndef _COMMON_HASH_H_
 #define _COMMON_HASH_H_
 
-unsigned long hash_djb2(const char *key, int len);
-unsigned long hash_wt6(const char *key, int len);
-unsigned long hash_sdbm(const char *key, int len);
+unsigned int hash_djb2(const char *key, int len);
+unsigned int hash_wt6(const char *key, int len);
+unsigned int hash_sdbm(const char *key, int len);
 
 #endif /* _COMMON_HASH_H_ */