Refactor and simplify virtual channel manager

Remove per-track virtual channel limitation, the entire virtual channel
pool is available for allocation. Also fix virtual channel freeing code
to properly decrement the count of virtual channels in use.

The virtual channel manager currently deallocates the oldest playing
voice when all virtual channels are in use. Impulse tracker deallocates
the background channel with lowest volume. Fix this later.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Update changelog

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>