GroupID __iter__ (second try)

Changes group iteration to use a cached list.  Generously assuming 100 bytes per name, this implies ~10MB cached for a 100,000-element group, which is acceptable.

In response to #306 and replaces #305, #307, #308.

Should speed up keys() but also values() and items().