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 haven't come across a case where the API returned the same ID multiple times. Is this common?