Murmur3-128 implementation

Includes variants for computing:
- A full 128-bit hash from a sequence of bytes
- A 64-bit hash from a sequence of bytes
- A 64-bit hash from a single long

The 64-bit hashes are produced from the 64 most significant bits of the corresponding 128-bit hash
Remove use of com.google.common.base.Objects
Remove use of com.google.common.base.Preconditions

Fork necessary methods of Guava Preconditions
Remove use of com.google.common.base.Charsets
Remove use of com.google.common.primitives
Remove use of com.google.common.io.Files.map
Remove use of com.google.common.collect.ImmutableList
Remove use of com.google.common.io.InputSupplier and com.google.common.io.OutputSupplier
Remove use of com.google.common.base.Throwables
Remove use of com.google.common.io.ByteStreams

Fix over read bug in OutputStreamSliceOutput.writeBytes(InputStream in, int length)
Remove use of com.google.common.io.LittleEndianDataInputStream
Remove use of com.google.common.io.LittleEndianDataOutputStream
Remove Guava dependency
Make findbugs annotations dependency optional