Implement basic CMake build system

This still does not include the `clean`, `install` and `uninstall` targets, but we can add those later.