fix(resource): check whether response matches action.isArray

When using $resource you must setup your actions carefully based on what the server returns. If the server responds to a request with an array then you must configure the action with `isArray:true` and vice versa.  The built-in `get` action defaults to `isArray:false` and the `query` action defaults to `isArray:true`, which is must be changed if the server does not do this.
Before this change, the error message was an exception inside `angular.copy`, which didn't explain what the real problem was.
Rather than changing the way that `angular.copy` works, this change ensures that a better error message is provided to the programmer if they do not set up their resource actions correctly.

Closes #2255, #1044