refactor(hosting): merged DirectoryIndex into route config
feat(continous-deployment): implement update of deployment via hook

This implements a github webhook which triggers an automated update.

Here is how it works:

The webhook at `web/github.php` is called. It checks if the update
is targeted for our repository (dothiv) and the branch of the
current clone. If all matches the file `app/cache/update` is
created. This is done by the webserver user which has write
permissions to the cache folder anyway.

A cronjob of `deployment/dothiv-web-01.dothiv.org.deploy.sh` is
running every minute and checks for the existence of the
`app/cache/update`. If it exists it creates a lockfile
`app/cache/update.lock`, creates a symlink of the `web/index.php`
to the `web/maintenance.php` and executs the update procedure.
The user running this cronjob needs write permissions to the
checkout.
The lockfile is used to prevent multiple update jobs running
at once.

If the update procedure succeeds the `app/cache/update[.lock]`
is removed and the symlink of `web/index.php` to
`web/app.php` is created.

The `web/maintenance.php` file contains a simple error page which
returns a HTTP 503 error code and a `Retry-After: 60` header.
The automatically refreshes itself after 60 seconds (including
a hashbang).