rework MIDI [processor|plugin] chain

* forward midi-data around plugins that have no MIDI-out
* allow to insert plugins with no MIDI-input at a point with one MIDI-channel

This works because excess ports (both plugin and route) remain
unconnected and use scratch-buffers.

Tested with LV2, LXVST and LADSPA.
(AU plugins with variable in/out retain the old behavior, no bypass)

fixes http://tracker.ardour.org/view.php?id=5630
Stop compiler warning about NSURL
MIDI Clock - Shuffling locate code (not actually used yet)
- Subscribe to Session::Locate to detect seeks
- Shuffle Mclk locating computations into a separate private class
Test code removal...
- Send position data from internal position class
- Proper midi beat conversions for all time signatures
- Disable responding to Session::PositionChanged in place
  of Session::Located.
Human readable printing of MIDI Position messages
WIP - Experimenting with an alternative clock generating algo
    - Transport debug output (tracing where transport_frame
      is updated
Revamp clock processing so it uses an internal frame reference.
MidiClockTicker::Position managed by boost::scoped_ptr
Make Session::send_song_position_pointer a no-op
Midi clock housekeeping
keep port-matrix in sync when deleting ports. and fix segfault on session close with io-matrix visible
Resolve duplicate symbol 'cocoa_open_uri' on OSX builds.
cocoa_open_uri.mm was being added to the source list
twice and also compiling twice. This patch enusres it is
only added once.
fix typos in display of error message about an LV2 plugin preset
Merge branch 'master' into windows