deep Copy
This creates a copy of a 2D Array of doubles that references entirely new memory locations from the original 2D Array of doubles, so no issues with mutability.
Return
returns a deep copy of the input Array
Parameters
copy Matrix
the 2D Array of doubles to copy