Added support for creating forwarded command. A forwarded command is a
command which has been push forward by a local changes forwarder. 
An example is a forwarding of an add command, where the location of the
added model should be relative to its source not the target of the
forwarding. Therefore, the location is wrapped into a ForwardedLocation
such that local and forwarded location can be distincted.

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