Refine groups functionality

Every project is in group "default".  "-default" does not remove
it from this project.  All group names specified in the manifest
are positive names as opposed to a mix of negative and positive.

Specified groups are resolved in order.  If init is supplied with
--groups="group1,-group2", the following describes the project
selection when syncing:

  * all projects in "group1" will be added, and
  * all projects in "group2" will be removed.

Change-Id: I1df3dcdb64bbd4cd80d675f9b2d3becbf721f661
diff --git a/repo b/repo
index 75fe9ec..0aabc0d 100755
--- a/repo
+++ b/repo
@@ -28,7 +28,7 @@
 del magic
 
 # increment this whenever we make important changes to this script
-VERSION = (1, 15)
+VERSION = (1, 16)
 
 # increment this if the MAINTAINER_KEYS block is modified
 KEYRING_VERSION = (1,0)
@@ -126,7 +126,7 @@
                  dest='depth',
                  help='create a shallow clone with given depth; see git clone')
 group.add_option('-g', '--groups',
-                 dest='groups', default="",
+                 dest='groups', default='default',
                  help='restrict manifest projects to ones with a specified group',
                  metavar='GROUP')