Enhance cacheSolve

Now returns a custom error if passed a regular matrix as opposed to the
special makeCacheMatrix object