Inline block_copy method
Move variable declaration inside for loop
Enable c99 compilation
Clean up header declarations
Fix bug with hashmap rebuilding

When the hashmap is rebuilding blocks can be moved around.  Therefore
the blocks that we're inserting the new one on could potentially have
moved to an index that doesn't match it's hash value anymore.
Therefore, we have to re-calculate where the new block should go.