created functions to cache and return inverse of a matrix