Change .list() to an iterator (instead of returning a list)

Also: make pagination slightly less weird, and fix the sample grab_oncall.py script
I guess what is happening it you're masking the race condition inherent in the api (since it doesn't allow cursors) but it doesn't prevent the reverse condition, where something is deleted which would cause you to skip a record completely.

On the one hand this makes helps users out but on the other it's masking a flaw in the API that can bite users in other ways.

How do you feel about this?