Some math appears to have changed underneath so the tests needed to be
updated. I've added an inefficient test of the max hamming distance for
the comaparisons. I'm not happy with the dhash that is getting a hamming
distance of 4 on samples 03. However with 64 bits of information in the
hash, a hamming distance of 4 says that the hashes are within 6.25% similar,
which is very similar out of the 2^64 combinations of hashes.
Cache filling methods follow standard and return a Result<bool,Error>
The methods to place the data in the cache from the hash source are wrapped in a match statement.
Compression using flate2 has been added to the caching controller
Made the hash code call for cached matricies before calculating them again if
possible
Changed the FFI tests to be a bit more dynamic. That said, I just noticed that
python hates unsigned 64bit numbers. Need to find a way around this. I
should be able to compare the native Rust code against the python FFI and
get the same results for a specific file.