Here we add a DataHandlerMapCPU to allow DataContainers that map to parts of existing DataContainers, as is used for block functionality.
In addition, the copy-on-write functionality was moved into DataHandlerCPU, for proper encapsulation.
Appropriate tests were added as required.