Enhancement: Validate include/exclude patterns before restoring

Patterns provided to `restic restore` via `--exclude`, `--iexclude`,
`--include` and `--iinclude` weren't validated before running the restore.
Invalid patterns would result in error messages being printed repeatedly
and possibly unwanted files being restored.
restic now validates all patterns before running the restore and aborts with
a fatal error if an invalid pattern is detected.

https://github.com/restic/restic/pull/3819
