Add ability to block by acquiring and releasing a unique token (BL-475)

Maybe some more comments?
What it fundamentally does is to ensure that any given token (specified by the unique identifier) can only be acquired by one process on the whole system.
A given process is only allowed to acquire one token.
It is important to release the token when no longer needed. It {is? is not?} necessary to make sure that ReleaseToken is called when your application exits (or crashes?)
(I see you have much of this information below, but it feels to me like such critical stuff to know about the class as a whole to be worth a mention in the class comment.)