hashing: add missing hash functions

OSX doesn't define hash<int64_t>, hash<uint64_t>, and isn't able to cast
pthread_t to a type with a hash. This fixes the problem by defining
replacements.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
FileJournal: fix posix_fallocate error handling

From the man page for posix_fallocate:

    posix_fallocate() returns zero on success, or an error
    number on failure.  Note that errno is not set.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
FileJournal: zero-fill in-lieu of posix_fallocate

Zero-fill journal if posix_fallocate fails or if it is not supported.
For very large journals zero fill can take a long time. An optimization
is to write a zero byte to the end of each block, or use platform
specific features for file allocation. Reference solutions for various
platforms can be found in Mozilla, SQLite, and PostgreSQL.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>