vout: serialise non-atomic user controls
Some user controls take more than one of the three video output locks sequentially. Namely some controls require both the window and display locks.
To make sure that concurrent user controls are atomic and do not interleave part-way, we would take both locks at the same time. This causes the (otherwise most uncontended) window lock to be bottlenecked by the potentially contended display lock.
To avoid this, we introduce a forth lock which serialise those user controls that require multiple lock. This new lock does not protect any video output state of its own.