VBAP backend re-work (part one):

* fix azimuth, don't clamp but map to [0,1]
* prepare elevation (10+ speakers)
VBAP backend re-work (part two): speaker positioning

* clean up source (whitespace)
* fix speaker 3x3 matrix iteration
* update math to go along with Ardour Cartesian -- fixes rounding errors
* fix division by zero in cross_prod()
* disable old debug output

(NB PBD::spherical_to_cartesian() returns
  3.7494e-33, 6.12323e-17, 1 for azimuth 90 elevation 90 distance 1
while it should return
  0.000000, 0.000000, 1 for azimuth 90 elevation 90 distance 1
IOW  cos(90.0 * 2.0 * M_PI / 360.0) != 0
Cause unknown. This is currently worked around check in vec_length()
)
VBAP GUI depends on signal-position (not parameter changes)
update default speaker position list
VBAP rework (part III): fix position computation backend & GUI
add spinbox to control width in VBAP GUI,..
redefine Pi :)
hide speaker-config in menu (it's not implemented yet)
VBAP GUI object-grab & position
credit where credit is due for speaker-config and VBAP fixes inspiration
swap channel VBAP channel
don't display elevation if panner does not support it.
cosmetic change - properly use lilv API
aubio 3+4 compat
VBAP panner UI tweaks:

* fix mouse-grab of sentinel
* make GUI more hemisphere like (circles at latitude)
* change alpha slightly to show signal overlap
take process lock when adding processors:

fixes possible crash if a processor modifies port-count

1. a processor is inserted and activated with processor-lock held
2. only after that the process_lock() is taken, configure_processors() is called which reconfigures-IO

BUT if the processor that is inserted changes the channel count AND audio is processed before IOs are reconfigured
 -> possible crash (invalid port-buffers)

To reproduce: Bus1 (2in, 3out), Bus2 (2in, 3out)
- add a send from Bus1 to Bus2,
- then add a processor to Bus1, just before the send which
  increases the channel-count to 4 -> occasional crash or assert.
fix processor -> reconfigure I/O || process concurrency

Add a ReaderLock to Route::process_output_buffers().

But process_output_buffers() is always called with processor-lock
held. To avoid deadlocks, a processor WriterLock must always imply
a process-lock (IFF reconfigure-I/O is called with _processor_lock).

Otherwise: e.g.
*  add_processor() -> takes processor-lock. set up and activate processor.
*  simult. audio-engine process, process-lock -> call process_output_buffers() -> wait for processor-lock
*  add_processor() continues -> calls reconfigure-io -> take process-lock -> deadlock.
fix deadlock when removing monitoring-section
ignore additional channels for AFL, PFL:

If the monitor-section has fewer-channels than the solo-listen point:
ignore additional channels.
update internal-send port-count when target port-count changes