Add optional support for the SipHash algorithm

SipHash is a cryptographic hashing algorithm. The idea is that when it
is used it will provide a non-deterministic hash value, which makes it
harder for an attacker to produce a denial-of-service attack. Implement
support for the algorithm and allow the user to build with either it or
the Jenkins algorithm.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Initialize pseudo-random number generation

The SipHash algorithm requires random numbers for its hash seed. Call
srand when columbia-cli launches and before it has initialized any hash
contexts. In an optimal world the user of the library should not have to
worry about random number initialization, but for now this is the case.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>