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.
Send and Read MIDI Positions the right way
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
remove strtok_r() from video_query_info()

for minGW compatibility
dedicated namespace for video-utils

conflicting symbol prophylaxis
advance track's play-position even if processing is locked

fixes
  * http://tracker.ardour.org/view.php?id=5628
  * http://tracker.ardour.org/view.php?id=5561
make master-meter in toolbar optional
fix no-roll LTC encoder, honor locates when transport is stopped
Timecode: fix subframe rounding

if sub-frames are used, frames are rounded up for the later half of
a sub-frame.  e.g. @48KSPS, 25fps, 100 subframes per frame
audio-samples >=1910 already yield 00:00:00:01
vtl: import audio at video-offset, forget offset on "Remove Video"
fix rounding issue when dragging video with fractional fps
fix meter-background highlight when peaking. (> vs >=)
fix compiler warning
new Mackie Control device file for Qcon controller (from #5634)
remove --no-freesound option. fixes #5640