SCUMM: Added support for Macintosh music in Monkey Island 1

This is based on the old Mac0-to-General MIDI conversion that we used
to do (and which this patch removes), as well as the code for playing
the Monkey Island 2 and Fate of Atlantis Macintosh music. I'm not sure
how accurate it is, particularly in tempo and volume, but at this
point it seems to work pretty well. Looping music is perhaps a bit
off, but it was before as well.

There is an annoying drawn out note in the music when you're following
the shopkeeper, but that appears to have been there in the original as
well.
SCUMM: Initialize the Macintosh MI1 instruments, along with the channels.

Otherwise it may crash if you quit before any instruments have been
loaded. Oops.
SCUMM: Add support for Mac Loom music and sound

It turns out that playing the Mac Loom music isn't particularly
different from playing the Monkey Island 1 music, except the data
layout is a bit different and there's no per-note volume.
SCUMM: Move most of the Macintosh player code into its own class

The Monkey Island and Loom mac music is really quite similar. The
data layout is a bit different, but most of the code was easy to
separate into its own class. The Loom player doesn't do looped music
but I don't remember off-hand if it ever should.
SCUMM: Remove unnecessary check for Mac Loom

As clone2727 pointed out, the default case handles Loom. I guess it
was a special case before to *prevent* it from trying to play the
sound, and to keep some comments about the format.
SCUMM: Hopefully fix warning

Excplicitly cast to int to avoid a warning that I don't get, but
which clone2727 does. At least, I hope it avoids the warning.
SCUMM: Try harder to open the Loom Macintosh executable.

Try the Mac OS Roman form, the UTF-8 form and the filename without
any trademark glyph.
SCUMM: Move Mac player initialization to its own function

Apparently we cannot (portably) call virtual functions from the
constructor, so initialization has been moved to a separate function.
SCUMM: Remove Mac version of MI1 from special case.

We no longer use iMuse for MI1 Mac so this never happens. The Mac
player can only play one song at a time, so it should be all right.
SCUMM: Save/load Mac music engine state for Loom and MI1

Note that while this removes _townsPlayer->saveLoadWithSerializer(s)
it really shouldn't break anything because _musicEngine also points
to the FM Towns player. Famous last words...
SCUMM: Add hack to preserve savegame compatibility with Mac MI1

For old savegames, we now use a "dummy" iMUSE objet to skip the old
iMUSE save state. I had hoped to be able to do this without making
any changes to the iMUSE code itself, but I was unable to.

Also added note about how the save state for the new music will not
quite work if the mixer output rate changes. Personally, I'm not
too worried about that. It breaks, but it shouldn't break badly.
SCUMM: Store sample rate in Mac MI1 / Loom savegames

This keeps the music from breaking when loading a savegame that was
made with a different sample rate than the current one. It also
breaks all savegames made in the past eight hours, but I don't think
it's necessary to maintain savegame compatibility within a pull
request, as long as it still works with savegames made before it.
SCUMM: Remove commented out code.

It was the remains of an experiment and no longer serves a purpose.
SCUMM: Avoid "pops" at the end of the note in Mac MI1/Loom music

At least on my computer, when the note ended abruptly there would
be an annoying "pop" at the end. This was particularly noticeable
at the end of the distaff notes in Loom. To get around this, fade
out the last 100 samples. There's nothing magical about 100 in
particular, but it's a nice even number and it should be short
enough that it's never a noticeable part of the note, even at low
sample rates.
SCUMM: Fix whitespace
SCUMM: Prevent music channels from drifting out of sync in Mac MI1

In looped music, prevent the music channels from drifting out of
sync over time. This was noticeable after a few minutes in the
SCUMM Bar. We do this by extending the last note (which is just
zeroes, so we didn't even use to play it) so that it has the
exact number of samples needed to make all channels the exact
same length. (This is calculated when the music is loaded, so it
does not need any extra data in the save games, thankfully.)

As a result, the getNextNote() is now responsible for converting
the duration to number of samples (out of necessity) and for
converting the note to a pitch modifier (out of symmetry). I made
several false starts before I realized how much easier it would
be this way.
SCUMM: Use more correct (I think) way of converting samples

It shouldn't make any real difference, but it's probably more
formally correct.
SCUMM: Fix regression that caused "pops" in MI1 jungle music

Properly treat rests as rests, not notes. Otherwise, it would try
to play a really low note which just came out as a "pop".
SCUMM: Lock the sound resource while the music is playing

After some discussion on #scummvm, the player now locks the sound
resource while the music is playing. This prevents the resource
manager from expiring the resource, which at best could cause
music to restart where it shouldn't.. At worst, I guess it could
have crashed, but I never saw that happen.
SCUMM: Add Windows encoding of the Mac Loom filename