Large change to hub API, having it go full two-phase for the listener in order
to deal with some configuration use-cases having to do with validation and
the like.  All existing listeners converted to doing work in commit phase, but
they will later be changed to use the full two-phase protocol.  No tests
currently, will be added subsequently