Added a #:derive-property option to define-generics.

The define-generics form can now derive existing struct properties, so that any
instance of the new generics group is also an instance of the struct property.
Added generic-method? and generic-method-supports? predicates.

Methods in generics groups are now special procedures recognized by
generic-method?.  Running (generic-method-supports? m v) returns #t if the
generic method m has an instance-specific implementation for the value v, and
returns #f if it has no implementation or only a fallback implementation.