Rust changes for v6.8

Another routine one in terms of features. In terms of lines, this time
the 'alloc' version upgrade is less prominent, given that it was fairly
small (and we did not have two upgrades).

Toolchain and infrastructure:

 - Upgrade to Rust 1.74.1.

   The patch release includes a fix for an ICE that the Apple AGX GPU
   driver was hitting.

 - Support 'srctree'-relative links in Rust code documentation.

 - Automate part of the manual constants handling (i.e. the ones not
   recognised by 'bindgen').

 - Suppress searching builtin sysroot to avoid confusion with installed
   sysroots, needed for the to-be-merged arm64 support which uses
   a builtin target.

 - Ignore '__preserve_most' functions for 'bindgen'.

 - Reduce header inclusion bloat in exports.

'kernel' crate:

 - Implement 'Debug' for 'CString'.

 - Make 'CondVar::wait()' an uninterruptible wait.

'macros' crate:

 - Update 'paste!' to accept string literals.

 - Improve '#[vtable]' documentation.

Documentation:

 - Add testing section (KUnit and 'rusttest' target).

 - Remove 'CC=clang' mentions.

 - Clarify that 'rustup override' applies to build directory.