Make classloader choice explicit

If a caller needs the bytecode compiler to use a custom classloader, it should make an explicit choice.

In particular, Swift shouldn't try to infer a classloader by looking into the thread context classloader, which was designed as a way for various layers in a J2EE server to share information via a thread-local side channel.