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.
I can see someone wanting to use a different poll duration for two different lock calls, but the usual case would be them wanting to set it on the locker instance. Perhaps both is needed, or just start with one, or just leave as is since its defaulted. thoughts?