New CMakeLists and additional ignore

The new ignore will ignore include/libraries which is the location for
downloading 3rd party library includes for Windows developers.

The CMakeLists is now more organized and cleaned. Also it will add the
special Windows include folder on Windows.
Moved all headers to include/ from src/