Mass Refactoring

See http://www.cplusplus.com/forum/lounge/112862/

This includes the changes in the `cmake` branch, so this can't be merged until that branch is merged.

The difference is huge, and the diff viewer is probably not the way to go. I'd recommend just reading the code in my branch and re-learning how it is designed. I've also got a doxygen file in the root directory that builds into `docs/` - you can run doxygen (make sure you have the recent versions which support C++11) and examine the documentation - though I've only documented the files in `src/util/`, so everything else is just shown as-is.

I've also added travis-ci integration, for what it's worth - the travis builders all have outdated versions of SFML and Boost, and the compilers are too outdated to compile the code anyway.

Make sure, and this is the most important thing, that you are able to build, link, and run ChessPlusPlus without problems. I recommend using nuwen MinGW 4.8.1 on Windows. I've got no experience on other platforms however.

I use this batch in the root directory for compiling:
```bat
del /s /f /q .\build\* && for /f %%f in ('dir /ad /b .\build\') do rd /s /q .\build\%f
title ChessPlusPlus-Build && mkdir build
cd build && cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=RELEASE  -DSTATIC_BUILD=1 -DSFML_ROOT="C:/Program Files (x86)/SFML" -DBOOST_ROOT="C:\MinGW" ../
cmd /k "make"
```
After it runs you can keep running `cls && make` every time you make changes to files. If you add or remove files you need to close the console window and run the batch again.