Fixed voice handle destructor bug with substates

The tricky part is that even if voices had 'state' fields, we
couldn't use those in the handle destructor, as the 'd.data'
field is off-limits! It's entirely possible that the physical
voice hasn't even been created at the time the handle is
detached, and then the operation would just fail, leaving the
voice stuck forever, thinking it's still attached to a handle.

What I've done for now is have a2_VoiceDestructor() always
return RCHM_REFUSE, and a2_Release() checking for that, sending
the A2MT_RELEASE message directly as needed, before the correct
state pointer is lost in handling.

Close #108.