Add @naraku9333's CMakeLists.txt from #41
Add missing return statements

Why did no one notice this?
Fix CMakeLists.txt to have proper include paths
Merge remote-tracking branch 'upstream/master' into cmake
Merge upstream + cmake changes