Wrote groups support, minor refactoring work.

Added groups into the provider, including a summary Uri that
feeds back high-level details about the number of people
inside each group.  Wrote medium test suite to make sure
summary values are counted correctly.

Added a column so that the visibility of groups can be
changed for showing in UI.  This also introduces a new
"visible" flag on each aggregate to keep building the list-
of-contacts cursor spiffy.  (Any update to the group
visibility flag triggers an automatic rebuild of the
aggregate visibility flags using a single update pass.)

Expanded data deletion code to handle best-effort promotion
of a new super-primary when one is deleted.  We first try
finding another data item with an identical value to promote
in its place, otherwise fall back to picking an arbitrary
primary from constituent contacts.

Minor refactoring of "MIMETYPE" to "MIMETYPES" and "PACKAGE"
to "PACKAGES" to keep in line with all other table names
being plural.

Refactored the ContactsActor class in the test suites so
that methods are called directly on the actor.  Allows for
better borrowing of code between test cases.
7 files changed