Implement basic CMake build system

This still does not include `clean`, `install` and `uninstall` targets