Implementing cachematrix functions for programming assignment 2