Reimplement `in-directory` to not use `call/cc`.

`in-directory` definition by mflatt.
See mailing list thread at http://lists.racket-lang.org/dev/archive/2013-September/013277.html
for more details. Also includes sequence syntax version.
Remember types that are defined, and use them in serialization.

This extends a facility already available for base types,
making that facility no longer strictly needed.

Shrinks the zo size for the `math` package by almost 1MB.