Refactor tone portamento processing

Change tone portamento processing from macro to an inline function.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Implement XM set envelope position effect

This effect sets the volume envelope position to xx ticks. OpenMPT
documentation states that OpenMPT also updates the panning envelope
position if compatible mode is disabled, but this quirk isn't implemented.

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