Remove dependencies on driver from trans et al. by moving various
structs out from driver and into other places.
Move typeck into its own crate.
Separate the driver into its own crate that uses trans, typeck.
FIXME(#19497) -- Stop messing around and just give rustc 32MB of stack unconditionally. This is prompted by some sort of bug in trans that causes a stack overflow when the modules in trans are made private. (In particular, the overflow can also be avoided by making `controlflow` and `callee` public, but that seems strictly worse than just using more stack.)