GRAPHICS: Add Renderable::fade()

This lets a Renderable be fade in or out.
GRAPHICS: Add Renderable::getSize()
GRAPHICS: Move _fileName and _name into Model
BUILD: Extend boost.m4 to check for Boost.Atomic
BUILD: Add dependency on Boost.Atomic
GRAPHICS: Add a new frame locking mechanism

The problem with our current LOCK_FRAME() method that locks Ogre's
SceneMutex is that it blocks in the render loop, therefore producing
a deadlock when locking the frame and then forcing a function into
the main thread (since those functions are handled in the same thread
that's then waiting on the SceneMutex).

To prevent that, we now implement a simple frame lock using atomics
that doesn't block the main render loop. Instead, if the render
method can't aquire the frame lock, it will simply jump over the
rendering and continue with processing the event queue.

To prevent that, we now implement a simple frame lock using atomics
that doesn't block the main render loop. Instead, if the render
method can't aquire the frame lock, it will simply jump over the
rendering and continue with processing the event queue.
GRAPHICS: Use the new frame locking mechanism
EVENTS: Register one custom event with SDL (ITC)
GRAPHICS: Add support for the "decal" texture property
GRAPHICS: Always blend entities according to the material's alpha

The material's transparency state now only disables depth writing.
COMMON: Make generateIDNumber() thread-safe
COMMON: Split generateIDNumber() and generateIDNumberString()
GRAPHICS: Use generateIDNumberString() instead of generateIDRandomString()

generateIDRandomString() is slower...
GRAPHICS: Add Model::hasNode()
GRAPHICS: Add Model::getNode()
GRAPHICS: Add getNodeSize()
NWN: Add back the GUI
NWN: Add back the main menu
GRAPHICS: Fix orientation in NWN ASCII model nodes

ASCII models use axis + angle instead of quaternions.
NWN: Use the default state for "up" in buttons

This seems to fix the a few buttons that looked
like they were stuck.