Rebuild build system with cmake

This will probably break a lot of build infrustructure so the CI may not compile it. The new way to compile the project is cmake . && make. This rebuild will greatly improve incremental compilition and allow linux contributors to rebuild lua bindings. Warning probarbly does not work on anything other than ubutu+clang but the only way to fix that is testing.