fix(watch_group): implement _WatchGroupList, fix WatchGroup#remove()

Previously, due to _WatchGroupList not being implemented, the port of WatchGroup#remove() was not
completing most of its job. This CL implements _WatchGroupList, and adds the other important
pieces of behaviour to WatchGroup#remove.