It turns out that JSDoc's dependency-injection needs are pretty simple; we mostly just need to pass around some data, plus some logging functions. That means the previous solution was overengineered, even though it was still pretty lightweight.
Now we just put everything in the `Env` object and pass that around instead.
Glob expressions are easier than regexes to write correctly; they're often easier to read as well. We support all of the syntax in https://github.com/mrmlnc/fast-glob#pattern-syntax, which should provide more than enough flexibility for JSDoc users.
Related change: If a `package.json` or `README.md` file gets picked up as one of your source files, we no longer assume that it should be incorporated into the generated docs. Instead, you must specify the file explicitly with the `-P` flag (for `package.json`) or the `-R` flag (for `README.md`).
`bottlejs` does what we need and is much more widely used.
Also, `bottlejs` doesn't do all the magic name extraction that `yaioc` does. That means less logic to reproduce in this facade if we change the underlying dependency later.
We need to ensure that the container is passed into any code that needs it. If you're testing a template, and it lives in a different directory than JSDoc itself, relying on a shared default container won't work.