MSVC2008 projects optimizations

Enabled "omit frame pointers" and whole program optimization.
Threads lib - added mutexes for WIN32/WIN64
Mathlib optimizations

- VectorInverse implemented as macro
- Applied GtkRadiant 1.6 VectorNormalize precision fix
- Added VectorCompareExt()
- Added VectorEqual/VectorIsNull macros (to replace VectorCompare calls)
_decal fixes

- _lightmapscale/_ls keys work now
- _smoothnormals/_np keys work now
- Fixed initialization of backfacecull parm (disappearing decals bug in
WIN64 builds
- Added pacifier
BSP phase optimizations & features

- Beautified information prints
- Added _foliage.reg map file loading (can contain point and compiler
entities). This is used to separate some ents from .map (so there are
not get edited in radiant -> map loads faster). Used for BloodOmnicide
foliage models (some locations have over 60k foliage models which stalls
radiant).
- New -nofoliage commandline switch that disables foliage (shader-based
one and external file)
- Triangle models are now preloaded in separate stage after map load
(showing pacifier and time spent).
- Decals now processed after decorations, so decorator can have a
feature of adding procedural decals in future
- Shut up prints of DiskCache() (this system is not fully implemented
yet anyway)
- FixVertexAlpha() stage optimized, now run on multiple threads
- Added "_noalphafix" misc_model key, which disables alpha-fixing
- Replaced VectorLength() == 0 by VectorIsNull() calls
- Separated FixVertexAlpha and ApplyColorMods stages from
FilterDrawsurfsIntoTree (so have separate pacifier prints and time spent
stats)
- Shut up "Flipped triangle" warning in AddMetaTriangleToSurface
Picomodel - speed up ASE normals calculation

Greatly speed up .ASE normals calculation function that is executed
during model load. Tests shows that models are now loaded 5-10x faster.
ProcessDecoratinos changed

- New much faster mergeModels code (around 20x), which generates better
quality groups (default merge tests raised from 4 to 64).
- Slightly changed decorations.txt script syntax (see scripts/ example).
- New mergeAxis <axis> keyword. Can be "xy" and "xyz" used for plants
merging which uses "xy" (default "xyz").
VIS - beautify information prints

Remove spaces and "vizdatasize" print.
Optimize - fix vertex merging

Vertex merging works again
Lightmap calculation - replace VectorLenth() == 0 by VectorIsNull checks
New Win32/Win64 binary builds

This revision is considered stable