programming assignment 2, caching a matrix inverse, possibly finished?