Lots of refactoring for clarity, new ability to replace nodes

The replace-child is mostly to support the new jgroups config
for hq. Because the config is comprised of multiple elements,
more context is required to know whether to delete them, so
we handle their parents in special extensions of overlay-child,
which is now a multimethod.

Additionally, we...

Remove :pred/:onto options and simplify logic

Minor renaming and re-introduction of ignorance punt

The HornetQ-via-JGroups config requires two elements, :jgroups-stack
and :jgroups-channel, and errors occur at start-up if either is
present with :socket-binding within either the :broadcast-group or
:discovery-group elements.

So we punt on those for now.

Revive child name convention, remove ignorance, use multi for jgroups

Move jboss-specific extensions into their own namespace