Added extra fields to generic-info.
Changed "generics group" to "generic interface" in error messages.
Changed "generics group" to "generic interface" in documentation.
Made changes to make-generic-info actually work.
Improved generics contracts.
Added tools for chaperones, impersonators, and contracts for generic interfaces.

Added four macros to racket/generic:
- chaperone-generics
- impersonate-generics
- redirect-generics (dynamically chooses between the above two)
- generic-instance/c
All take pairs of method names and wrappers (procedures or contracts),
and turn those into appropriate chaperone, impersonator, or contract wrappers
on the method tables of the given structs.

Used this to rewrite set/c to give better error messages.