Transition from QtCore to stdc++ / STL / boost

This looks like a pretty major change, but in reality,
80% of it is just renames of types and corresponding
methods.

The config parsing code has been completely replaced
with a boost::program_options based version. This
means that the config file format slightly changed
(checkout the updated README).

I still expect there to be bugs / unforseen events.
Those should be fixed in follow up commits.

Also, finally reverted back to using pkg-config to
locate and link libruby. Yay for less hacks!
Remove unused definition
MRI-Binding: Don't memcpy script data before deflating

I think the reason this was originally done was some
issue with ruby's GC where it would wrongfully sweep
the script array variable on the C stack.

This change should speed up startup a little.
mkxp.pro: Shorten keyword lenght to choose binding

'BINDING=BINDING_MRI' => 'BINDING=MRI'

Also error out if multiple bindings are chosen.
Exception: Constructor now takes printf style arguments
SharedState: Throw exception on errors (and handle them)

First up: throw if chdir(gameFolder) fails.
Shader: Throw on compile/link error, and print info logs

Also let go of the startup debug prints when compiling.
The engine will now tell us properly which shader fails
at which part.
Remove outdated ruby patch
add CMake project for easier building
ulong isn't defined anywhere (maybe on linux it is.. but not standard on OS X)
pull in missing include
safely print errors by explicitly specifying a format string
wrap not check in parenthesis so the check is done correctly.
GLSL 100 doesn't do automatic type conversions.. (int to float)
don't use base name it's destructive to the incoming string which you shouldn't modify as c_str() is const.
update extension usage..

nearly all of the previous required extensions are CORE in OpenGL 2.0
the remaining ones need to have fallback checks for ARB vs EXT vs APPLE 
variants..
correct ScanRow forward declares
CMake's GLEW finds parent dir.. not GL subdir.
can't sizeof an iVar in a static function
add missed force32 option