Flesh out some more manager-ish stuff.

* add a burst connection parameter - how many new connections to open
  on each timer tick
* track how many outstanding connections are open - this doesn't
  track connections/requests that complete or error yet as there's
  no actual per-connection manager state kept anywhere.
* begin introducing a callback mechanism for the client to notify
  the owner of various state changes.

I haven't yet fully figured out the client lifecycle and notify path -
that'll come next.