Set and UnbalancedSet, from PFDS Appendix A.

The Set type class, and UnbalancedSet, an instance thereof. Pretty
much the same code as in PFDS Appendix A, pp 202-203. Set specifies
the interface for a set, and UnbalancedSet is an implementation of
that using ordered binary trees. These are used in several of the
exercises in Chapter 2 of PFDS.
Solution for Exercise 2.2.
Fix typo.