Switch to CMake

I can't build the existing Makefiles with anything I have, there's no reason
for this project not to be cross-platform in the future, and the benefits of
hand-written Visual Studio projects and Makefiles simply don't matter for a
project of this size.