add get all groups

I don't think this implementation will handle the case where the "cursor" key has been deleted. We can probably also make it simpler by using `itertools.dropwhile()` or something. I'll hack up a quick proof of concept and put it in a comment below this one.