Write the function to calculate and cache a matrix inverse

*write makeCacheMatrix to implement a enhanced matrix class that can cache its inverse

*write cacheSolve which does the inverse calculation or calls the preexisting value from the cache