Add a base collection for resources.

BaseResourceCollection ties into our resource pagination mechanisms to
allow paging through collections of models.

The caller can do an initial fetch() to get the first page, and then
call fetchNext()/fetchPrev() to get subsequent pages.

Or, the caller can call fetchAll() to get every instance from the
server.