First version of matrix.py, copied from cefyr/urd
Rewrote __contains__ properly, now works completely differently

But it works as the documentation expects it to, which means it checks
for values, not coordinates.
Added getitem and setitem to test, rewrote setitem

Removed the automagic stuff and the value checking in setitem
Fixed clear to use the object-wide default_item()
Added test for flip_orientation
Added tests for count_rows/cols
Fixed and added tests to add_col and add_row
Added tests for remove_row/col
Fixed move_col and added tests to move_row/col
Fixed copy_col, added tests for copy_row/col