Fix bug where BlasterShot animation lasted one frame too long.

This was caused by using the same numSprites value in the draw loop as
the update loop. When the BlasterShot dies, it's removed from the sprite
batch, but was still being looped through and drawn. I have no idea how
this didn't crash the program because the object should've been erased,
yet it still seems to exist in some capacity.

My first thought was just to replace numSprites with a call to size()
in the next loop. This blew up the program as soon as a BlasterShot was
created. I'm not sure why.

I decided the best solution was to try to eliminate the need for passing
a TCI to draw() in the first place. The reason I had to do this before
was because I separated the "decisions" and the actual hitbox update. My
reasoning for this was to eliminate any lag between hitbox location
updates for each sprite, but until this is actually a problem, I'm going
to avoid it because it overcomplicates the loop. I instead moved this
functionality into update() and it works fine right now.