Convert Locker to be instantiated.

As an instance, the Locker object is able to own the collection.
Calling code can then pass around the Locker without receiving code
being knowledgeable of the underlying mongo collection.

Static methods in PHP are essentially just namespaced global methods -
there is very little different between Locker::readLock() and
Locker\readLock().  These methods are more difficult to use: they can't
be passed around easily, they require the shared parameters ($collection
in this case) to be kept and available for passing everywhere the method
needs to be called, and are more frustrating to mock in tests if they
can be mocked at all.
These were here within the forked process because I am not sure a MongoClient is safe to copy its exact state into another process. It might be working off info it read about the old process.. it does seem to work but might just be asking for an issue later, and I couldn't find documentation on whether its safe.