Fix DList.distinct (#183)
In distinct, deduplicate nicer and faster on a per-hash code
Properly test DList.distinct

Since a string is made up of 16 bit characters, the previous
test was almost certainly not testing the Distinctness part
at all. Only testing it handled hash failures.

This does a better job with both :)
merged with master