Before this PR, config parsing would accept duplicate job names.
`zrepl daemon` would later fail to start with a panic.
But tools like `zrepl configcheck` would pass.
This PR adds a check to ensure job names are unique.
Similarly, internal job names were not being rejected by config
parsing
Move that check to parse-time as well.
This PR allows for the distribution of zrepl job definitions across
multiple YAML files that are included from the main config.
```
global: ...
include:
- ./zrepl.yml.d
- /opt/zrepl.yml
- ...
```
Refer to the docs changes for details.
Co-authored-by: Christian Schwarz <me@cschwarz.com>