move field related function into header files for speedup in map::build_transparency_cache
update map::build_seen_cache,

player can now see what's below a transparent floor adjacent to the PC
Ported some gun firing functions to use 3D
Implemented yet another 3D line-to algorithm