Doc: IR: Turn property docs into nodes

Rather than presenting property descriptions in large tables, give
each music, context or grob property its own documentation node.

This may look somewhat more cluttered, since most property
documentation texts are rather short. The advantage, however, is that
it makes the property descriptions linkable. At least, in the HTML
version, all properties formerly collected in one table still appear
on one page, since their nodes are accompanied by unnumbered section
commands.

As it turns out, property names are not globally unique. For example,
we have a music property 'tonic as well as an eponymous context
property. For now, avoid node name ambiguities by appending the
property type for all property nodes. Since that clutters the layout
even more, timely implementation of a more parsimonious solution seems
in order.
Auto-generated docs: use (lily) format function

When they got turned into modules, a number of document-*.scm files
started falling back to using guile's built-in format
function. Consolidate on using the one defined in the (lily) module
again.
Doc: IR: Automatic disambiguation of texi node names

With properties being documented in texinfo nodes of their own now
(commit 9ca941e29ea4...), name collisions need to be handled
automatically.

Implement a function disambiguate-node-names! that adds appropriate
suffixes to all nodes in a texinfo node object tree where
necessary (and only there).

Also use this mechanism now to append the " (MIDI)" suffix to MIDI
contexts where necessary (i.e. for almost, but not quite all
$defaultmidi contexts).
Doc: IR: Link between disambiguated nodes

If a node name had to be disambiguated, for example for properties of
different types that use the same symbol, provide a list of links to
the other nodes that originally had the same name.
Doc: IR: Links to property nodes

Since properties now have their own texinfo nodes, they can be
referenced, so do that.

Make sure that such links in the exported notation manual appendices
target the Internals Reference explicitly.

Properties are usually formatted with @code. Since constructions like
@code{@ref{...}} can lead to TeX errors, make that formatting part of
the relevant node-ref method. It may make sense to generalise this to
references to other types of nodes for consistency at some point.