Compiler speedups

The first commit I believe should be uncontroversial.

The second is a proof of concept showing that collects-relative->path is way too slow. This change gives me about a 50% speed up in no-op compiles of the typed racket unit tests. I believe there is much more savings to be had by assuming that the collection structure doesn't change during a single compilation call.