Create makeCacheMatrix.R

## makeCacheMatrix.R
##
## Create a cache marix object that can be used to
## repeatably solve the inverse of the marix, but only
## calculates the inverse once of the passed matrix
##
## Usage:
##  M <- matrix(c(1,2,3,4,5,6,7,8,9), nrow=3, ncol=3)
##  cacheMatrix <- makeCacheMatrix(M)
##  cacheSolve(cacheMatrix)
##
##  cacheMatrix$set(M)      # Change the matrix being cached.
##  M <- cacheMatrix$get()  # cache matrix being returned
##
##  cacheMatrix$setInv(solve(data, ...)) # Private function containing cached inverse of 'a' matrix
##  cacheMatrix$getInv()                 # Private function used to get the cached inverse of 'a' matrix