You can now pass a `&dyn Diagnostic` (as before), or a `Report` (or
`&Report`, `&mut Report`, or `Box<Report>`), or anything else that
implements `Diagnostic` to `render_report`.
More generally, users can use the `AsDiagnostic` trait wherever they want
to write functions that accept either a `Report` or `Diagnostic` — this
improves ergonomics in a world where `impl Diagnostic for Report` is
impossible.
BREAKING CHANGE: Because more types can now be passed to `render_report`,
`Report::as_ref()` can get confused about types and inference fails. The
solution is removing the `.as_ref()` altogether since `Report` is now a
directly accepted type.