Rename jack backend to match Tim's name
Rename dummy backend to match Tim's name
Rename all 3 backends for the MSVC sln file
explicitly qualify cast to ArdourCanvas::Container so that it works.

I assume that gcc is failing to complain about ambiguity with Gtk::Container even though there should
really be no ambiguity
Merge branch 'canvasredesign' into cairocanvas
add missing new files for canvas redesign
more canvas refactoring.

Remove Canvas::Layout, use Canvas::Container for the same purpose, move child-rendering into Item::render_children() so that it
could theoretically be used by any derived type.
ALSA-backend: dedicated Midi-Buffer n-periods (only use for HW output)
fix latency-measurement dialog back-button.
button click (release, to be precise) within the canvas drop zone cancels all object and track selections
Do not allow to de/activate a track while the transport is rolling.

roll_delay and latency are only re-calculated when the transport is stopped.
de/activating a track is also not RT-safe.
en/disable internal send+returns with tracks en/disable.
when exporting regions, use ::legalize_for_path() on the playlist name so that filenames are legal.

Also, use Glib::build_filename() rather than hardcoding / as the separator. How did this escape the search for this error?
for backends w/o control, save a fake state with only the "active" attribute.

This makes ardour start directly with external jack without asking if jack
was previously used. It also retains jackd settings if jackd was previously
started by ardour.
statically allocate midi-options

fixes possible segfault when the data in the vector
goes out of scope due to RVO.
don't let enumerated device list strings go out of scope.
fix logic error that meant one side of the waveform outline is not drawn; draw zero line before outline, for better effects with low amplitude waves
reset time axis view item name text color when selected status changes
completely rethink waveform rendering (again)

There are 3 possible components to draw at each x-axis position: the waveform "line", the zero line and an outline/clip indicator.
We have to decide which of the 3 to draw at each position, pixel by pixel. This makes the rendering less efficient but it is
the only way I can see to do this correctly.
revert drawing of rectified waves back to previous approach since it (might be) slightly more efficient and is simpler to understand; add comments