Added DualCommand2 implementation FactoryCommandPair and interface
CommandFactory. 
Factory commands pairs each act as a dual command 2 by using 2 command
factories: one for creating the commands to do execute, and one
antagonistic factory which is used for a returned factory command pair,
where factories are swapped, such that the returned factory command pair
creates antagonistic commands.

Signed-off-by: Jakob Brandsborg Ehmsen <jakobehmsen.github@gmail.com>