Programming assignment 2 - matrix inverse cache