feat(watch_group): split group manipulation into newGroup and addGroup

Previously, creating a new watch group simultaneously attached it to the
parent from which it was created. Now, we have split this behavior into two
steps so that it is possible to create a watch group, set up watches and then
choose which parent to attach it to at a later point in time. You can also
remove a watch group and attach it to a different parent. These features allow
a more elegant mechanism for turning watches on/off based on whether or not
the associated view is attached to the DOM. A primary use case for this is to
tie into the attachedCallback/detachedCallback of the custom element lifecycle
in order to better manage databinding present in element templates.

Closes issue #32