Create makeCacheMatrix and cacheSolve Functions

Matrix inversion is usually a costly computation and their may be some
benefit to caching the inverse of a matrix rather than compute it
repeatedly (there are also alternatives to matrix inversion that we will
not discuss here). Your assignment is to write a pair of functions that
cache the inverse of a matrix.

Write the following functions:

makeCacheMatrix: This function creates a special "matrix" object that
can cache its inverse.
cacheSolve: This function computes the inverse of the special "matrix"
returned by makeCacheMatrix above. If the inverse has already been
calculated (and the matrix has not changed), then the cachesolve should
retrieve the inverse from the cache.