Revert "dont compile unused static hash functions"

This reverts commit 09c759bcfa4c2880c571df4da20458b2f781debf.

The reverted patch causes us to not compile functions that we might
not use. In theory this is a good thing. But any competent compiler
is going to exclude them anyway if they aren't used, and we might
miss useful warning messages, or whatnot. See b404539126a for an
example of a patch that would not have happened, or would only
have been partially done had this patch been applied.

Also the reverted patch claimed that "It is not safe to have multiple
hash funcs in 1 build due to conflicts on the size of
PERL_HASH_SEED_BYTES." which is incorrect. The functions do not
reference PERL_HASH_SEED_BYTES directly, and are usable by anyone
who knows what size of seed they need.

Additionally I have on my long-term todo list the following:

* Allow Perl to randomly select the hash function at startup
* Allow Perl to use the hash function determined by the ENV at startup.

This patch would have to be reverted to complete either of those tasks.

To recap, I am reverting this patch because it adds no real value,
makes our hash functions susceptible to bit-rot, and because it blocks
interesting future changes that I plan to work on in the future.
add cast to make c++ happy