Update functions to perform inverse calculations

Creates a special matrix list that can be used to retrieve the value of
the matrix as well as compute its inverse. Also creates a cached
inverse that can be used in a loop to reduce computation time by not
having to recompute the inverse. It loads the value of the inverse
matrix from cached memory instead.