Template updates:
- Update `main` signature from `main() -> str` to `main(args: Sequence[str] | None = None) -> int | str`
- Remove check for `handler` attribute on namespace
- Add `--debug` flag to generated `ArgumentParser`
- Update `main` to catch `Exception`s generated by `handler`, by default only the error message is shown to the user, however if `--debug` is set the exception (with stacktrace) is raised
- Rename `args` parameter to the more aptly-named `ns`