small optimizations in tileEngine

these functions get called a lot by the drawing code and can use some minor
optimizations like this

- voxelCheck returns -1 without processing if the tile in question is empty.
- castedShade moves to the lowest logical level before checking voxels
- removes extranneous LOF trace in reaction fire checks
Optimize map draw somewhat
pop some un-needed states in new battle mode
fix battlescape timers

the timers start before the inventory state is pushed, and frameskip freaks
out because of all the time it missed, starting the timers in the init
function sets their start time more accurately.
change how fire speed works

this si a big one folks, it'll invalidate your old fire speed settings,
make sure you re-set your fire speed in the menus, or expect projectiles
to move at an undesired speed.