Shot collisions are now checked more

Shots are moved one pixel at a time in each update now, and collisions
are checked each movement.  Some optimizations are done to ensure that
there isn't a ton of unnecessary math being done for each frame.