Did a bit of cleanup and refactored so that we can now have a custom
config instead of a default one.

- moved functions to `common`
- changed detect to look for `conf/config.hdf`
- `compile` will create the `webroot` folder if necessary
- default config is gone for now, I'll follow up with diffs to fix that