* Refactor/rewrite all the code
The change prepares solid ground for further improvements. This also fixes
at least two bugs:
* Proper support for empty lines and comments in build scripts.
* Previously switching to new releases was not atomic despite messing with
symlinks. This is because it deleted the current link before creating the
new one, but it should have created a new link and then use ‘mv’ to
replace the old one atomically. The code has been changed to work properly
now.
* Refresh the test suite as well
* Fix the build for older GHCs
* Use subshell for ‘cd’ commands