Add out of range test for tone

Note 71 and 72 of the percussion of bank 0 were crashing the synth.
An integer overflow combined with exponentiation resulted in such a large
value that it is regarded as infinite. Code flow was stuck in
the hz() loop to determine the octave.
- Change the type of tone to a signed short
- Add appropriate range check to avoid this in the future.
Fix number of lines in UI::PrintLn
Only show portamento warning if !=0

This avoids a flood of warnings when resetting controllers.
Revert 64c20ce (Start audio after first samples)

Solve this in audioout.cc, not in each executable.
Handle audio start/unpause automatically for SDL
Implement `all sounds off` (controller 120)
Warn when playing missing instrument

Mark instruments with peak amplitude <0.5 as having no sound.
Log a warning when one of these is played.
Show name as instrument bank as well as number

At startup show the name of the selected instrument bank as well.
Fix off-by-one error in MIDIsymbols
Add missing drums to MIDIsymbols

Just add 'D' glyphs for now.

78 Mute Cuica
79 Open Cuica
80 Mute Triangle
81 Open Triangle
Add GS percussion instruments
gen_adldata: Replace missing instruments with 0
gen_adldata: Avoid conflicts between melodic and drum banks

In some of the bnk files (eg: Int) the percussive and non-percussive
instruments are detected wrongly resulting in the melodic bank
being overwritten by drum instruments. I noticed this while listening
the Descent level 3 music with the accompanying intmelo bank.
Pass the percussion flag into LoadBNK explicitly.
instruments.py: 256-color experiments
Add "legend" to specify what instrument is playing on what channel
Rename OPL3 to OPL3IF to avoid collisions

It represents an interface to OPL3 cards, not the cards themselves.
Avoid collisions with the zdoom objects.
Import zdoom's OPL emulators

zdoom offers three OPL emulators.
See http://zdoom.org/wiki/OPL_synth_emulation
Make use of their object-oriented interface.
This implies switching to float samples.

Pick the CPU-heavy but accurate JavaOPL for now, but this needs to be
configurable using a command-line switch eventually.

Source files were imported from zdoom git commit b285cbe.
Implement full panning

This avoids the sudden jumps while panning in for example the Raptor
soundtrack.
Move the original dbopl to oplsynth

Needs to be integrated into the same interface as well; this is a
newer/better version than present in zdoom.
Integrate original dbopl as DBOPLv2