Grouping Overhaul

More fields supported, more interesting control for selection, and
some general cleanup of related code