Introduce GroupUpdate and GroupId
GroupId: use this as a abstraction for the id path encoded as string
GroupResource: allow fetching of nested groups
GroupUpdate is used to define changes
GroupManager: use transitive applications to start/stop/restart