Let Optional, Dictionary and Array conditionally conform to Hashable

Thanks a lot, jawbroken, that makes perfect sense.
I will try adding a failing test for equal dictionaries traversed in different order, and then refactor to the suggested “consider each (k, v) as an element in a Set”.