Resource reloading now occurs through .reload()

This new method acts much in the same way as the old reload
functionality that would traditionally be triggered with a reload flag
in query() or get() -- the original collection/resource object is
extended from the http response.

All calls to reload() return a promise that will be resolved with the
given resource when it has successfully been extended by the http
response.

Unlike the existing flag-based approach, only one http request for a
given resource path will be pending at any given time. If no reload
request is pending, passing a resource to reload() will send out that
request. Subsequent calls to reload() for the same resource while a
reload request is pending will have no effect and will return the
promise for the currently pending reload request.

Note: The old flag-based reload behavior in .get() and .query() has been
removed in this commit. Any reload flag passed to either of those
methods will now be ignored.
Resources are considered reloading on initial load

While the original request to load data for a resource or collection is
still pending, any call to reload() for that resource will return the
original promise. This means you can safely call reload() on a
just-returned resource to ensure that it is reloaded if need be without
worrying whether it will fire of an unnecessary http request.