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.
That's going to catch all the headers, since it's recursive, no?