Add weapon timing mechanic + SpriteAnimator

SpriteAnimator does not actually animate sprites yet, just manages
animation time