Test for #fingerprints to be a Hash.
Fingerprinter#fingerprints now returns a Hash.

This hash is a mapping of the type:

    Map: (K-Gram Hash) -> (Array[Location])

This is an array because it's possible for the same k-gram to appear multiple
times.
Get rid of Winnow::Fingerprint.
Update matcher_spec to expect hashes too.

Matcher now returns a hash of values to match data.
Have Matcher return a hash now.
Test for Matcher whitelists.
Ignore fingerprint values if they are in the whitelist.

This is useful if some fingerprint matches are expected and should be ignored.
If documents are expected to come from a template, then fingerprints from that
template should be added to the whitelist.
Make matcher return an array of match data.

For almost all cases, the exact hash values that caused the match are
uninteresting.
Add a temporary, decent README.