[SYSTEMDS-2712] Inferring CSV mdt bug fix

When reading CSV files and directly writing them to another file.
The metadata it saves with indicate -1 cols and -1 rows.
This is because it while reading the CSV does not know how big it is
in default arguments.

This commit fixes this, when the first read from disk is called, the
metadata is changed on the matrix object after the read, to reflect the
correct number of cols, rows and nnz.
diff --git a/src/main/java/org/apache/sysds/runtime/controlprogram/caching/MatrixObject.java b/src/main/java/org/apache/sysds/runtime/controlprogram/caching/MatrixObject.java
index 4fd2b06..61bc5b8 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/caching/MatrixObject.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/caching/MatrixObject.java
@@ -462,6 +462,12 @@
 			DataConverter.readMatrixFromHDFS(fname, iimd.getFileFormat(), rlen,
 			clen, mc.getBlocksize(), mc.getNonZeros(), getFileFormatProperties());
 		
+		if(iimd.getFileFormat() == FileFormat.CSV){
+			_metaData = _metaData instanceof MetaDataFormat ?
+				new MetaDataFormat(newData.getDataCharacteristics(), iimd.getFileFormat()) :
+				new MetaData(newData.getDataCharacteristics());
+		}
+		
 		setHDFSFileExists(true);
 		
 		//sanity check correct output