GRAPHICS: OpenGL 3.2 context

Default to attempting to create an OpenGL 3.2 context. If that
fails, then fallback and create an OpenGL 2.1 context instead.

graphics::isGL3 can be used to query which context version is
currently in use.
GLEW: Upgrade to version 1.11.0

[08-11-14] GLEW 1.11.0 adds support for OpenGL 4.5, new extensions
BUILD: Error out if no working C++ compiler could be found

Because apparently, AC_PROG_CXX doesn't. -.-
Revert "BUILD: Error out if no working C++ compiler could be found"

This reverts commit 1ef3acdeba98cbb66a481e4b22efbf7eea89189c.

On second examination, this is unfortunately not a good idea.
AC_CHECK_PROG doesn't work with absolute paths, so this now
breaks the usecase of someone having set CXX to an absolute path.

Moreover, from a cursory grep over various source distributions,
I found that no one else checks for CXX existing either.
COMMON: TransformationMatrix updates.

TransformationMatrix rewrite, now supports many more features,
is more efficient, and still compliant with OpenGL requirements.

Additional: Vector3 now has an _w component. This allows direct
use with 4x4 matrices, and is directly related to the
TransformationMatrix updates. _w is set to 1.0f by default.
COMMON: TransformationMatrix fix

TransformationMatrix rotateAxisWorld fix to actually rotate
about a world-relative axis.
NWN: Add dummy creature constructor
NWN: Use an abstract class for the chargenerator

The purpose of this class is to:

- Ensure every chargen GUI's has a reset method,
- Have an easy acces to the character user choices through a static
  struct.

As some choices like race/class change directly others (feats/skills),
it is easier to centralized them.
COMMON: TransformationMatrix changes

TransformationMatrix rotation now accepts an
option to normalise input axis vectors.
TransformationMatrix::transpose is now getTranspose.
TransformationMatrix::getPosition is now working.
TransformationMatrix::getXAxis is now working.
COMMON: Add FilePath::createDirectories()
COMMON: Add FilePath::getConfigDirectory()
COMMON: Use FilePath::getConfigDirectory() in ConfigMan

Note that with change, the location of the config file has
changed for both Mac OS X and GNU/Linux (and other Unixoids).

- On GNU/Linux, the file is now $XDG_CONFIG_HOME/xoreos/xoreos.conf
  (previously: $XDG_CONFIG_HOME/.xoreosrc)
- On Mac OS X, the file is now $HOME/Library/Preferences/xoreos/xoreos.conf
  (previously: $HOME/Library/Preferences/xoreos\ Preferences)
COMMON: Add FilePath::getUserDataDirectory()

This is where user data like a default log or game saves
will be put in the future.

- On GNU/Linux, this will evaluate to $XDG_DATA_HOME/xoreos/
- On Mac OS X, this will evaluate to $HOME/Library/Application\ Support/xoreos/
- On Windows, this will be the same place as getConfigDirectory()
MAIN: Open log file after target has been identified

So that each target can define its own log file.
COMMON: Add DebugManager::getDefaultLogFile()

Returns the path of where the log file is written to by default.
MAIN: Always open a log file by default

Override by setting logfile to an empty string or
setting nologfile to true.
MAIN: Document --nologfile
COMMON: Add FilePath::getDirectory()

Return a path's directory.
Example: "/path/to/file.ext" -> "/path/to/"
COMMON: Only create the log path when the log is opened
COMMON: Only create the config path when the config is written