Added documentation and a shared version of the singleton.

Also renamed `LowLockSingleton` to `__GSharedSingleton` to make it clear
that it's instance object is not thread safe.