disallow invalid port-removal

do not allow port-removal if the port would be re-added immediately
after that again because the main-delivery actually needs it.

As a side effect this prevents this crash:

 * create a stereo-track, then remove one output
  -> unhandled exception "AudioEngine::PortRegistrationFailure&"

 The problem:
 - the port is removed from the RCU ports list,
   but Port::drop() (which calls jack_port_unregister) is only called
   from the Port's destructor at some later time.
   (because a reference to the port still exists elsewhere)
 - the jack-port is not yet removed.
 - meanwhile Delivery::configure_io comes along and notices that
   there are more audio-buffers than ports and tries to re-register the port.
 - but the port still exists in jack, so it fails and throws an exception
   ...which is not handled.
on session-load: skip output-change-handler until IOs are restored

fixes loading a session with tracks that have more input-ports
than output-ports.

the problem:

input -ports are added first, when added, IO::ensure_port() emits
IOChange::ConfigurationChanged which in turn triggers the route to
allocate corresponding output ports.

Due to this callback the output-ports were created before the actual
output-port-configuration and plugin-configuration from the
session-state was parsed and set.
Merge branch 'midiclock' of https://github.com/axetota/ardour
fix "other" port-group tab

Separate port-bundles for each jack client in the connection manager.

Previously, apps were only listed as separate bundles if the
ports were gathered at different times. ie one app shows up after
the other (and if no complete re-scan was triggered)

Fixes issue reported by Fons Adriaensen.
properly handle port removal in route.

bug:
 - add midi track
 - add additional midi port
 - remove additional midi port
 - press play
 -> crash

because..

ARDOUR::MidiTrack::roll's route_buffer still has 2 midi-channels. This is
because processor_max_streams was not updated (no plugins added/removed)
fill_buffers_with_input() eventually asserts when trying to get the 2nd
(nonexistant) midi port via ARDOUR::PortSet::nth_midi_port() in
 ARDOUR::PortSet::port().
fix gtk "child->parent == NULL" asserts
add a peak reset button to the editor meter

see http://tracker.ardour.org/view.php?id=5601