Use single backticks, not triple
Up Installation, Debugging heading level
Reword README.md opener
Linkify top heading
Enable -fsanitize=address on DEBUG
Add err to list of libraries

Self promotion best promotion
Use versioned version (1.1.0) of err

See <https://sr.ht/~smlavine/err>.
Better explain qsort(3)-required casts
Update copyright year
Use clearer language to describe source code symbols
Make Debugging a level 3 heading
Delete extra spaces between variable names and flags in Makefile echo
Remove explicit DEBUGFLAGS variable

It is unnecessary now, as it is no longer used in Makefile; and it looks
out of place with the rest of the flags that are actually used by the
build system.
Makefile: echo CPPFLAGS and LDFLAGS
Use individual copy variables instead of array

- There are only two values so an array isn't that needed
- These values correspond to the indivdual pointer arguments anyway
- Simpler syntax
Remove DEBUGFLAGS echo

If debug builds are enabled, then they will be included in CFLAGS, so
they don't need to be printed on their own in that case. When debug
builds aren't enabled, it is unnecessary to show them at all. So this
echo serves no purpose.
Remove basename() holder variables

In this context, basename() returns a pointer to a char within
copy[0]/copy[1]. There is no need to store these in a variable, and
indeed it seems like GCC optimizes it out.

Now that I think about it, the presence of these variables is probably a
remnant of the misunderstandings that were fixed in 62a6c631.

The comment explaining ret doesn't make sense without these variables
present anymore, so it is removed too.
Disable optimization in debug builds
Simplify realloc() code

It is unnecessary to assign the result of realloc() to a temporary
variable, because in these cases we immediately error out of the program
on failure.
Mention GNU make in README.md