Fix warnings on 32 bit systems

- Change format specifiers to not make assumptions about integer and
  size_t sizes
- Change audio hash function to shift a different amount based on
  sizeof(size_t)
Merge pull request #151 from blucoat/32bitfix

misc: fix warnings on 32 bit systems
buildsystem: fixed install path issues from #81
util (crossplatform): added subprocess and os files

main methods are:

subprocess::call       (can redirect output and behave in a blocking/non-blocking way)
subprocess::which      (searches for a binary in PATH)
os::execute_file       (calls xdg-open on file)
os::self_exec_filename (readlink /proc/self/exe)
buildsystem: added options system, gperftools

options system:

./configure (usage with --with and --without)
./CMakeLists.txt (specification)
buildsystem/version.cmake (bookkeeping; see 'log_config_option')

the list of enabled options is available in config_option_string in config.h

gperftools:

first option that's using the new system;

gperftools-profiler is automatically linked in if it exists (disable with --without)
gperftools-tcmalloc must be manually enabled (with --with)
buildsystem: fixed verbosity issue with Makefile
added config options to version display

made engine fonts unique_ptrs
buildsystem: made inotify optionally toggleable

use ./configure --without inotify
util: integrated profiler into game_main

press F12 to start/stop profiling
buildsystem: added config.cpp (in addition to config.h)
buildsystem: put Inotify detection into module
buildsystem: made --with switches tri-state (yes, no, auto)
Merge pull request #157 from mic-e/profiling

Added gperftools profiler, buildsystem options, some utilities