Fixes -Wall -Wextra warnings

Issue: #50
Adds CLI arg `-v, --version`

Issue: #50
Adds target `make uninstall`

Issue: #50
Moves common vars into cmake/variables.cmake

Issue: #50
Adds cmake module to find libreadline and libtinfo

Issue: #50
Adds cmake module to find LLVM

Issue: #50
Improves the build system

Cleans up variables.cmake.
Moves target specific code into variables.cmake.

Issue: #50
Adds toolchain for mingw32

Issue: #50