This is the solution to programming assignment 2.

A function creates a list of functions that can get and set the inverse
of a matrix.  The list of functions also contains getters and setters
for the matrix.

The function cacheSolve checks if the inverse is cached, then the
inverse returned, otherwise the inverse is calculated and cached for the
next call.