Only use a single ByteClassLoader, attached to the GlobalContext.

In a few cases (Java interop), we still have to create additional
ByteClassLoaders, but this should cut down memory use a bit.