Sample accurate voice termination

The KILL and KILLA VM instructions, VM programs ending, and the
a2_Kill*() API calls, now all ensure that any subvoices are
allowed to proces until the point at which their parent voice
is killed, before actual destruction. (Previously, non inlined
subvoices would fail to process their last fragment, which can
result in audible artifacts.)

Inlined voices call for no special action, as they're processed
fragment by fragment along with any other units. However, normal
subvoices are now handled by truncating the current fragment at
the position of termination and then processing the subvoices
before actually destroying all the voices.

The internal a2_VoiceKill() has been merged into a2_VoiceFree(),
which now instantly kills, detaches and frees a voice, and
recursively, any subvoices.

There is a new a2_VoiceKill() function that just sends an event
to the voice, for sample accurate destruction. Used by the KILL
and KILLA VM instructions.

Both a2_VoiceProcessEvents() and a2_VoiceProcessVM() now return
A2_OK as long as they want to keep running, and any other return
code kills the voice. Thus, events can now kill voices without a
roundtrip through the VM.

Closes #121.