Setup filters and headers for Visual Studio in CMakeLists

I changed the CMakeLists.txt so it builds a VS project with the headers and has filters that look like the file structure.
@lojack5 suggested I @wrinklyninja for review.