Introducing MatrixType

MatrixType is an enum that holds the current status of a node; whether
it corresponds to a zero, identity, transpose matrix, neither of them or
an invalid node (one that hasn't yet been initialised).
TODO: Set the types appropriately along the code, as the code that
verifies such types is already working.