Proper cleanup after unloading waves

Due to a stupid bug in a2_WhenAllHaveProcessed() (sending messages
to the wrong FIFO), the callback that freed the A2_wave structs
was called too early, and from the wrong context. As a result, the
free() was hacked out, to avoid segfaults. Fixed, and seems to work
as intended.

Closes #118.