expand libmikmod to have internal support for definable callbacks, and have
correct timing routines to allow these callbacks to be executed as accurately
as possible.

basically:

int Player_InstallCB(void *(*callback_routine)(void *), unsigned long type, int value);

int Player_UnInstallCB(int CB);

Player_InstallCB installs the callback 'callback_routine' into the player
library, type of callback is defined in type, type is a bitwise ORed value,
currently I've considered the following types:
CB_CHAN
CB_INST
CB_CMD

CB_CHAN means execute this callback whenever something occurs in the channel
specified by 'value'

CB_INST means execute this callback whenever 'value' instrument is played

CB_CMD means execute this callback whenever 'value' command is performed.

Player_InstallCB returns -1 on error, else it returns the ID of the callback
which is used to remove the callback in the future with Player_UnInstallCB.

Player_UnInstallCB removes the callback 'CB' from the player library, the
callback ID 'CB' is obtained when Player_InstallCB is called successfully.
returns 0 on error, 1 on success.


(maybe not anymore, syncing works now, this could still be useful for slow
machines that cant manage to mix fast enough to keep up with the soundcard
DMA buffer, but do we really care?  I mean, these machines are just doomed)
