Fix #7 - don't ignore errors from pread(2)

Use a signed type for result from pread(2), so the error handling case
actually trips. Good thing pread(2) should basically never error for
local files =).

CR: gcc, tests (with py.test 2.2.4, if it matters)
Merge pull request #8 from cemeyer/fix_7_fix_pread_error_handling

Fix #7 - don't ignore errors from pread(2)
Fix bloomd to build with GCC 4.7.2 warnings mostly on

- This is what caught issue #7 (an argument for accepting the patch :-))
- Couldn't figure out how to get SCons to use Clang, so that is untested
- In test_hashmap.c, I wasn't sure what 'void *foo = 0 & i' was supposed
  to accomplish -- 0 & i will be 0 for any i, and an integer type (not
  pointer). I changed it to 'void *foo = (void*)(intptr_t)i'.
- Everything else is pretty straightforward. Plenty of easily fixed
  'comparison between signed and unsigned' and some 'unused variables'
  in the test code.

CR: gcc, tests pass
Build tests with -Wno-unused-result for now ...

CR: gcc (local), tests
And move -Wno-unused-result to the correct place ...

CR: gcc (local), tests
Fix #6: Generate random hashmap seed at process start

- Add init_hashmap_random() to hashmap API
- Fix users of MurmerHash3 in hashmap.c to use new seed value
- Call init_hashmap_random() in early startup in bloomd.c

CR: gcc, tests
Merge pull request #9 from cemeyer/fix_gcc472_warnings

Fix bloomd to build with GCC 4.7.2 warnings mostly on
Generate per-hashmap random seed with OpenSSL

- Modify SConstruct to link -lcrypto
- Load OpenSSL error strings on startup
- Nuke old init_hashmap_random(); instead we have hashmap_get_random(),
  which takes a pointer to 32-bit uint which will be set to 32 bits of
  random
- hashmap_init() calls hashmap_get_random() to seed new map->seed
  attribute
- Modify hashmap_insert_table() helper to take a seed parameter

CR: gcc, tests
Merge pull request #10 from cemeyer/fix_6_hashmap_dos

Fix #6: Generate random hashmap seed at process start