Added new display groups UI from spec.

Instead of only displaying a single group, we allow the
user to toggle the visibility of all available groups, and
the backend provider takes care of the visibility logic to
keep our list-of-contacts cursor spiffy.

This UI has some limitations and is just a first revision,
for example you can't display contacts from a provider that
aren't part of a group, other than picking the gloal "all
contacts" option.  Also, filtering to "only with phones" can
be confusing to users, need to iterate.

The group list is a custom ExpandableListAdapter that walks
the summary cursor, splitting each source package into its
own expandable group.  There is some fancy work done so this
only requires one cursor, so it scales nicely.
8 files changed