Add support for groups in security.

A user can be a member of a group or have roles assigned directly.
Groups typically have one or more roles assigned. Users that are part of
that group will get these roles associated too.
Users have the union of the roles associated with their groups together
with their own roles. When logging in the user will get RolePrincipal
objects for all of these. The user will also get a GroupPrincipal object
associated for each group (s)he is in.
Groups are currently implemented for the PropertiesLoginModule and
PropertiesBackingEngine. They can be gradually added to other login
modules too.
This commit also contains shell commands to manage groups as well as a bunch
of new tests.

For example the following can be used to set up some users and groups:
  jaas:realm-manage --realm karaf
  jaas:user-add joe joe
  jaas:group-add joe managergroup
  jaas:group-role-add managergroup manager
  jaas:group-role-add managergroup viewer
  jaas:update
  jaas:realm-manage --realm karaf
  jaas:user-list

This prints out (note that the admin group is configured by default):
User Name | Group        | Role
----------------------------------
karaf     | admingroup   | admin
karaf     | admingroup   | manager
karaf     | admingroup   | viewer
joe       | managergroup | manager
joe       | managergroup | viewer