Change contract on change-contract-fixups

The context should provide a flattened list of syntax
to the function.
Avoid direct use of type->contract in with-type

Eliminates the last remaining use of type->contract
outside of the type-contract.rkt file. This allows
all contract generation to go through a single point
of control.
Simplify contract generation code

Don't export type->contract except for testing. This
discourages direct use of type->contract in favor of
using the change-contract-fixup approach.

Also consolidate most of the contract-related syntax
properties into a single property containing a prefab
struct instance.