Matrix with cached inverted matrix

First cut