Initial commit of new Commands implementation

So far just a copy of the old Commands implementation. Will be kept hidden from
the external API until reasonable useful.

The main idea of the new implementation is to add an abstraction for the system
under test (SUT), and to make it possible to run several command sequences in
parallel, isolated from each other. This requires several co-existing instances
of the SUT.

Maybe also add support for running commands in parallel against the same SUT,
which would make it possible to detect threading issues in the tested code.