Finished reimplementing PCH.
Tidied up some more unnecessary references and added an overload for pointers to mutexes in our Guard class to help readability.