Switch hashing function to FNV-1a and Data.Map to Data.IntMap

The switch to FNV-1a provided slightly fewer collisions in my tests with a 140MB log file, at no cost to performance. Went from 168224 unique hashes to 168337.

The switch to IntMap keeps the hash size at ~64 bits on x64 systems and shaves off ~10% of the time needed to populate the map.