Since matrix inversion calculation is costly the following
functions help with caching the matrix once calculated and
only re-calculate if any element changes or the matrix is
changed.

Following functions are part of the commit:
makeCacheMatrix() and cacheSolve()