Fix timer slot reuse issue

This fixes a bug where if a timer is killed while being fired and
another timer is created immediately and occupied the same slot the
second timer never gets called. Now there's an additional check
internal _sampgdk_timer_fire() that makes sure that the timer ID was
not re-assigned to another timer before killing the original timer.

Fixes #116.