Instances of this class (or derived user classes) are used when trying to set
a lock. The default implementation provides a single-write/multiple-reader
policy. However, by overridding the appropriate methods, other, type-specific
concurrency control locks can be implemented.

Create a new Lock object and initialise it. Mode is based upon argument.
The value of BasicAction.Current determines the values of the remainder
of the fields. If there is no action running the owner field is set to be
the application uid created when the application starts.