Bugfix: Sound allocation code to re-use existing IDs was referencing index -1
Several bugfixes and enhancements:
(1) Improper sound_channel (index i instead of j) was being stopped.
(2) Checking for NULL sounds was never done.
(3) Using vector.insert() was actually causing the vector to add 2 elements per sound, and allowed improper sound overwriting.
(4) GM doesn't actually re-use sound IDs, which avoids the case where stale sound IDs suddenly become relevant again.
(5) sound_add_from_buffer() was leaking memory (by immediately overwriting the empty SoundResource* that sound_allocate() added).
Bugfix: If sound_add_from*() specifies a custom ID, make sure our auto-generated IDs won't conflict.
Merge pull request #775 from sorlok/audio_fix

Many OpenAL fixes