add a mdds::multi_type_matrix method that iterates through a rectangular subset of the matrix
Currently there is no efficient way to iterate through a subset of the matrix if that subset is not continuous. We should add a walk method that takes a start and end point and will take care of only iterating though these parts.