Improvements & Cleanups of BSP file build process

- fixed many filename arrays initialization to use MAX_OS_PATH
- unbroke _nonsolid/_ns entity key (this key prevents generating of
collision brushes)
- new shader keyword q3map_noBSP which, if set on all brush materials,
prevents generation of collision brush
- reworked lightmap/deluxemap subsampling code to prevent filling of
unused pixels. After subsampling, new flooding code fills lightmap
borders with nearest colors. Flooding code adds a 9-pixel borders around
lightmaps, fixing possible splotches caused by texture filtering and
make lightmaps more suitable to block compression (DXT, Jpeg). Borders
filling is only performed if deluxemapping is enabled.
- rewritten normal subsampling code for tangentspace deluxemaps which
raises quality of tangentspace deluxemaps. Now it uses a real normal
subsampling instead of top left pixel fetch.
- if engine is using compressed lightmaps (bloodmap assumes they are
located in basepath/dds/<path_to_map_lightmaps>), this lightmaps are
deleted once map runs LIGHT phase (just as external lightmaps).
- BSP optimization phase now can generate a resource map file
(<mapname>.res.obj) containing all texture resources BSP is using.
Resource file is OBJ model which have one triangle for each shader found
in BSP file (including lightmaps). Additionally it contains all
materials and misc_gamemodel's map is using in the comment zone (so it
can be easily parsed by a game logic). This feature is used in Blood
Omnicide "multi-map loading" system which preloads resources of nearest
levels in order to make shorter map loads. In order to enable .res.obj
file generation, a -resmap keyword should be used.