Classes updated, CMakeLists.txt autogen

- HashIndex, HashString const, non-const cached*, operator []
- client::Model TODO
- CMakeLists.txt optimization option
.hpp -> .h, minor fixes

- .hpp -> .h
- uint String::hash
- Hash* operator[] optimized
- #define OZ_USE_*ALLOC moved to base.h so they are defined when compiling base
Classes/Models nearly working

- heavy updates on Classes, Models
- O_*, D_*, B_* removed to scrap/
- updates on Context, MD2
- HashString: String replaced with const char* where feasible
Classes and Models working

- Context updated for MD2, OBJ, modelClasses
- base/Exit added, but not used yet
OBJ triangle strip
config default values, Audio music glitchless

- config.read -> config.get, adds variable if doesn't exist yet
- main.defaultConfig removed, default values given in config.get
- String( float ), String( double ), String( int ) debugged
- Hash* must be empty before operator = ()
- Exit removed
- SoundManager -> Audio
Rotateable structures

- structures can be rotated by multiples of 90°, by-node rendering to do
- FRICTING_BIT and HIT_BIT should be now set, HIT_VEL_TRESHOLD has to be adjusted
- OBJ possible optimization: glEnable/glDisable(GL_TEXTURE_2D) not set every time now
- more strict explicit constructors in base
- MatXX are now unions + some other improvements
- LogFile::printRaw -> LogFile::printEnd
BSP water

- Water object removed, BSP brushes with NULL texture are now water
- water brush rendering TODO
- ++/-- operators are now prefix operators, return reference instead of void (-Weffc++)
- virtual destructors added where warnings suggested them (-Weffc++)
BSP water improved, BSP ladder

- BSP water set through surfaceparm nonsolid. Rendering TODO.
- BSP ladder. Set through surfaceparm ladder. Non-rendering TODO (or find a
  flag for BSP compiler to hide it).
- several updates to Collider (test for ladder brush if OBJECT::CLIMBER_BIT
  present and test for water brush) and Physics (friction, new flags ...)
- hit func now requires velocity scalar
Coefficients adjusted, BSP w/o VIS works
Bot class-ified, movement improved
BSP slick brush

- BSP slick brushes now supported in Collider/Physics/Bot
- some redundant files removed, classes moved to other files
Exception added, minor code cleanups

- Exception class added to base/common.h. TODO: report critical errors via
  exceptions
- (missing) static and const qualifiers added to some member functions,
  Hash*::cached now mutable, so getters are now const, other minor code
  cleanups (redundant includes, more explicit casts ...)
- flags for profiling builds added to CMakeFile.txt
- Audio closer to workable state
- sliding works better
Misc

- base/common.h split into common.h, iterable.h, arrays.h and Exception.h
- client/BSP can now detect when camera in inside a water brush, water rendering TODO
Several updates

- translator::createObject
- point collision detection can also get an object to ignore (as object CD)
- Physics now clears bits more systematically
- newVelocity -> momentum, velocity now shows real velocity
- some coefficients adjusted
- BSP rendering partially done
- aim dot reenabled
- screensaver disabling fix
- better handling with BSP texture flags & type bits
Audio base class

- Audio -> SoundManager
- Audio base class, SimpleAudio
- ObjectClass got audioType, audioArgs members
- arrays.h -> array.h
- main loop timing should be more resistant to slow framerates
base improvements

- self assignment checking
- List and DList copy constructors & assignment operators
- Hash* chain functions changed to non-recursive form
- other base bugfixes
new audio system "working"

- new audio system works, but sound corruptions, crashes on exit bcause of
  assertios etc.
- iterator() functions templates to construct array iterators
- loader for SFX in Context, but doesn't work for OggVorbis
- initialization phases changed (context & alut init'ed separately ...)
Load/save, freelook, freecam, translator names ...

- several minor changes to base
- matrix
  * Translator::Resource, resources loaded mostly by name, not by file path
  * each BSPs has now a corresponding .xml with settings line bounds and scale
  * Bot freelook
  * serialization for Object, DynObject, Bot, Structure and World. world state
    can be saved to a binary file and loaded later
- client
  * Audio now loads all needed samples when Audio object created, not on first play,
    other Audio improvements
  * proper support for rotated BSPs also in clients part
  * Camera much improved, now easier binding/unbinding to objects, relative rotation,
    head rotation without rotating yourself, free camera, head limits
  * nicer extensions output, log should be more clear now, less verbose when
    everything goes fine
  * loading mostly by resource name (file basename) not by file path
  * new classes in matrix/io for reading/writing binary data from/to a buffer/file
  * creating objects from stream (ObjectClass::create( InputStream* )
  * World::position & co for putting, removing and moving objects in the worlds
    when synchronizing via network or loading from stream
  * some in Physics and Bot fixed
Improved CD, Physics, TTF works, Audio works fine

- Pool is now a standalone class not part of PoolAlloc any more
- collision detection more robust now, shouldn't fall through wall if penetrated
- pushing of objects improved (excess hit event generation solved), CLIP_BACKOFF reduced
- several Object flags changed
- log messages cleared, more systematic
- TrueType fonts working
- Audio, SimpleAudio work fine now
- SoundManager music loading partially rewritten