Add Hashable instances for all exported types

(Based on hashable-generics package which is out of date)