framework: fix meta keybindings setup

Don't add "~c:" to a keybinding that has "c:".
fix a test
fix `path->relative-string/setup'

Need to make `path->relative-string/setup/pkg' have a better name
and be more accessible, though --- possibly replacing
`path->relative-string/setup'.
more test repairs
Set up framework for generic sets.
Added tests for lists as sets.
Generic implementation of sets that gets past bootstrapping phase.
Fixed a bug causing set/c to diverge.
Fixed treatment of lists as sets, and base case of case-lambdas.
Allow set-count to overcount for lists.
Disallow impersonators for set element contracts.
Fixed flat set contracts.
Fixed set/c to create a chaperone contract.
Shallow refactoring of define-generics macro implementation.

Turned syntax-case guard into explicit checks with a slightly more informative
error message, and turned let* bindings into internal definitions.
Another minor refactoring of define-generics macro.

Turned with-syntax bindings into internal definitions.
Yet more refactoring in define-generics.

Replaced uses of unsyntax and unsyntax-splicing with pattern variables defined
using define/with-syntax.
Adding fallbacks to generics.

The optional #:fallback argument to define-generics provides a set of
definitions for the generic methods.  These definitions are used for values
that support the generic interface, but not the specific method that is called.
Updated tests for new syntax.
Changed #:fallback option for define-generics to #:fallbacks.
Adapted racket/set to use the #:fallbacks option.