Programming Assignment 2: Lexical Scoping -- Caching the Inverse of a Matrix