Adding fallback method implementations to define-primitive-generics.
Adding #:fallback option to define-generics.
Empty #:fallback for gen:dict.
Empty #:fallback for gen:stream.
Added empty #:fallback to gen:iterator test.
Added empty #:fallback to gen:foo tests.
Changed #:fallback to #:fallbacks in define-primitive-generics.
Changed #:fallback to #:fallbacks in define-generics.
Changed #:fallback to #:fallbacks in definition of gen:dict.
Changed #:fallback to #:fallbacks in definition of gen:stream.
Adapted racket/set to use the #:fallbacks option.
Adapted data/order to new private generics syntax.
Fixed a typo in racket/set.
Generics contracts now ignore unsupported methods.

With the addition of method fallbacks, there are a few choices for how generics
contracts might treat unsupported methods.  They might (a) always reject them,
(b) always accept them, or (c) wrap fallbacks if present and otherwise reject
them.  The previous implementation was (a); now it is (b), which wraps
everything implemented for the specific generic type, and trusts the
implementations of the fallbacks, since they can only interact with the
underlying type through the supported operations anyway.  This keeps the
fallbacks from pervading the implementation of generics and also reduces
contract wrapping.
Changed #:fallback to #:fallbacks in gen:foo test.
Changed #:fallback to #:fallbacks in gen:iterator test.
Finished updating names of set methods.
Removed empty-set; set-clear is all that is necessary.
Added contract checks to racket/set.
Added mutable sets.