Add a list_all function which uses pagination to load all of the data
for a collection.

In order to do this, list() had to be enhanced so that it can optionally
return the raw request, so that we can tell if we're on the last page.