Ignore proxies when extending resources

While you can currently overwrite proxied resource properties, the
practice is not recommended. The `$extend()` method in particular is
designed to safely update a resource's data without unintended side
effects, so it should be as conservative as possible in what it changes.
Add html test coverage reporting

The html reporter for test coverage provides a visual representation of
exactly which lines/code have test coverage, so its very useful in
tracking down missing tests. This will only affect development.
Factory for collections of resources

It is frequently useful to maintain similar resources in a specialized
collection. Collections are sort of resources in their own right in that
they map to specific paths and can be populated asynchronously with a
promise. Collections maintain a mapped array of resource objects as well
as methods to interact with those resources.
Ability to query for resource collections

When you know an api endpoint returns an array of resource objects, it
makes sense to convert that response into a collection of resources
rather than an individual resource itself.

Each individually resource in the collection is cached as well as the
collection itself.