Add matrix Redis datatype

* Adds XGET and XSET commands
* XSET rplies with dimensions and shape of matrix
* XGET replies with content of selected subregion of matrix

Shape reply:
* Number of dimensions (dims)
* dims replies for the size of each dimension (shape)

Content reply:
* Number of dimensions (dims)
* dims replies for the size of each dimension (shape)
* product(shape) doubles for each value
Add matrix print function for debug

Prints a matrix's attributes to stdout for debugging
Copy values when setting XSETing
Improve some code readability
reformat matrixPrint function body
Move getReshapedIndex to top of file
Don't need to memcpy dims
Store size on matrix struct

Seems like I'm recomputing this number all over the place
Remove unused variable
Reformat matrixSlice
Make shape memcpy simpler (to me)
Box values in scalar struct for ref counting
Add zero matrix function for initializing with zeros
Slice and set values in subregion
Remove unused function
Add XZEROS and XONES for creating matrices
Reorganize function declaration order
Inline variable declaration and initialization
Add XEYE command for creating identity matrices
Add stride argument to matrixSetValues

Dries up creating identitiy matrices