Add support for Rust 1.54.0, 1.55.0, 1.56.0

This patch adds tests for Rust 1.54.0, 1.55.0 and 1.56.0.  To make the
tests pass, we have to take care of some changes like more details
elements and changed heading levels.  To make it easier to generate the
tests for new Rust versions, we also add two bash scripts that take care
of that.
Avoid unnecessary borrows

This patch removes unnecessary borrows of references that are
automatically removed by the compiler.  This takes care of the new
clippy lint needless_borrow.
Fix code formatting
Disable doc generation in CI

Previously, we ran the tests in the CI with frehsly generated
documentation.  We disable this option with this patch as we’ve updated
some dependencies so that the test cases no longer work properly.
Scroll by page on PageUp/PageDown in tui viewer

Previosuly, we would always scroll by five lines if the PageUp or
PageDown button is hit in the tui viewer.  With this patch, we customize
the scroll speed to one page (minus one line).
Bump MSRV to 1.45.0

Due to the update to cursive_core 0.2, we have to increase the MSRV to
Update dependencies
Update cursive dependencies

This patch updates the cursive dependencies to use cursive_core 0.2.
Release v0.4.3

This patch release adds support for Rust 1.53.0 and for non-default
target directories.
Update arc-swap dependency to 0.4.8

This patch updates the arc-swap dependency from 0.4.7 to 0.4.8 as the
old version has been yanked.
Don’t use Option::zip to keep MSRV

Option::zip was introduced in 1.46.0 but our MSRV is 1.40.0.
Add support and tests for Rust 1.53.0

This patch adds tests for Rust 1.53.0 and adapts the HTML parser to
handle method and implementations list inside of details elements.
Add changelog entry for target dir lookup

Previously, we assumed that the documentation generated by cargo is
placed in the target directory relative to the current working
directory.  This is only true if the CARGO_TARGET_DIR and
CARGO_BUILD_TARGET_DIR environment variables are not set.

With this patch, we check the CARGO_TARGET_DIR and
CARGO_BUILD_TARGET_DIR environment variables to determine the target
directory.  It could also be set in the Cargo configuration file, but
that would be too complicated to check.  In the future, we might be able
to use the cargo config subcommand to determie the target directory.
Add support for multiple formats to test cases

This patch adds support for multiple rustdoc output formats to the test
suite.  This is a preparation for adding support for rustdoc’s JSON
Rename parser module to parser::html

This patch renames the parser module to parser::html as a preparation
for adding a JSON backend.
Release v0.4.2

This patch releases adds support for the new search index format (Rust
1.52.0 and later).
Add --locked flag to cargo install invocation

This patch adds the --locked flag to the cargo install invocation in
INSTALL.md as this makes sure that the users ends up with tested and
working dependency versions.
Support new search index format (Rust 1.52)

This path adds support for the new search index format introduced in
Rust 1.52.0.  With this new format, the index items are no longer
serialized as an array of structs but as arrays of the struct fields.