Serialize initial library loads

class_loader_core uses static entities to create global objects. Well it turns out that the loadLibrary function can be called multiple times simultaneously, and because of the static objects, we end up starting a new load before another finishes, causing a persistent failure when loading the first library.

This commit adds a mutex to ensure that this critical section of the loadLibrary function is not interrupted by another library load.