Made all paths configurable and added automatic version numbering

All paths are now configurable at compile time via CMake or at run time
via the config file. The config file is for obvious reasons only at
compile time configurable.

Version numbering is done via git commit hashes and tags.