Matrix object that can cache its inverse

two functions, makeCacheMatrix and cacheSolve - the details are
commented above the functions