Rewrite grunt to compile everything

Files are now built out into build/, which is then collected and output to a
.cpp file in dist/