Add Pure, Map, Foldable for Sets

Set is actually a restricted functor (as it requires Ord).
I think it could be a (restricted) Traversable too...