Add a macro for GCC to ensure stack alignment
Move ALfloatBUFFERSIZE to a common location
Add min/max/clamp methods for doubles
Add a MIDI event queue

In preparation for a MIDI extension.
Use a 64-bit uint for MIDI event times
Ensure UINT64_MAX is defined
Add a base MidiSynth struct
Add a MidiSynth interface for devices
Create and use a MidiSynth on playback devices
Cleanups for MidiSynth

Remove an unneeded field, make MidiSynth_getTime public, and properly return a
64-bit time from it.
Start a MIDI interface extension
Add an option for FLuidSynth to handle MIDI
Add a method to load a soundfont
Be a bit safer with MIDI state changes
Add a config option for specifying the default MIDI soundfont
Fix building without FluidSynth
Move MidiSynth locking out of the setState method
Add a method to stop MIDI playback

Unlike pausing, this resets the MIDI clock time to 0, clears the existing event
queue, stops all MIDI sounds, and resets MIDI controllers.
Remove an unneeded MidiSynth field
Combine duplicate soundfont loading code