Build system update.
Moved API documentation generator to apidoc folder.

The tools directory will contain sources and headers for tools.
Fixed build dependencies.
Fixed nested virtual path names.
Moved tests from include/test and src/test to test/include and test/src.

Also added a bunch of tests that most likely won't build atm.
Removed gmake.bat.

Not sure if we're going to bother with gmake on windows.
Changed exception class making.

Previous exception handling was dependent on reading the reason string. Much better is to use the type as an identifier of what went wrong. This change makes that easier.

Added PM_MAKE_EXCEPTION_CLASS(clazz, super) macro that creates a new exception type (whose name is specified by clazz parameter) that inherits from super. The 'what' method returns the class name.
Added alignment files.

VS2012 C++11 alignment functions have bugs.
Added C++11 support checker.

Hopefully this will be removed when compiler support increases.
Removed constexpr from Rect.
Removed unused file.
Added source code for io and filesystem modules.
Added C++11 workarounds to get math module to build on VS2012.
Updated error handling for gr module.
Removed ext -> concurrency dependency.
Added C++11 workaround for text module to build on VS2012.
Added C++11 workaround to get WindowInputSource.cpp to build on VS2012.
Changed construction of Vector in Surface.
Added C++11 workaround to ImageReader.
Changed event manager to use action id's to identify action.