solution and unit test for assignment 2

Implementation of cache matrix, plus unit tests to ensure proper
functionality. To run unit tests, run test.cachematrix() after
sourcing. The test will create an invertible 3X3 matrix, use the solve
method directly to determine the expected inverse. Then the
makeCacheMatrix and the methods on the resulting vector are tested to
ensure the proper result is retrieve, and the value is cached (or not
cached) when we expect.