Function Score: Refactor RandomScoreFunction to be consistent, and return values in range [0.0, 1.0]

RandomScoreFunction previously relied on the order the documents were
iterated in from Lucene. This caused changes in ordering, with the same
seed, if documents moved to different segments. With this change, a
murmur32 hash of the _uid for each document is used as the "random"
value. Also, the hash is adjusted so as to only return values between
0.0 and 1.0 to enable easier manipulation to fit into users' scoring
models.

closes #6907
@harmsk This was due to using a 32 bit hash, however it was fixed so longs (as well as strings) work later in #8311