Use the generic CHERI alloca bounding pass in place of AArch64Sandbox

The generic CHERI pass tries to be smarter and avoid making live ranges
too large, rather than always inserting the CSetBounds/SCBNDS just after
the alloca in the prologue and causing high register pressure (in theory
the intrinsic could be made rematerialisable and/or cloneable such that
it's automatically cloned, sunk and rematerialised as the register
allocator desires, but the generic pass tries to work around those
limitations). Reusing the generic pass also ensures all CHERI targets,
including Morello, benefit from any improvements, and avoids code
duplication. The only downside of this pass is that it doesn't use
CSetBoundsExact/SCBNDSE, but that is something we should fix upstream as
an added level of defense against compiler bugs (though with a correct
implementation of the pass should be unnecessary).

Note that the pass already works as-is for Morello, since the AArch64
backend already has patterns for int_cheri_bounded_stack_cap (for both
register and immediate forms of SCBNDS) that have so far been unused.
Even in the limited selection of AArch64 tests here there are already
some definite improvements in code quality.
7 jobs for !131 with generic-cheri-stack-bounds-pass in 140 minutes and 53 seconds (queued for 1 second)
latest detached
Status Job ID Name Coverage
  Build Stage1
passed #51096
build-toolchain

01:50:22

 
  Build Stage2
failed #51097
allowed to fail
build-android

00:29:11

passed #51098
build-busybox

00:07:58

passed #51099
build-firmware

00:04:53

 
  Generate Test
passed #51100
generate-test

00:01:18

 
  Test
failed test

passed #51102
arm64
test-busybox

00:02:25

 
Name Stage Failure
failed
build-android Build Stage2
user	102m54.844s
sys 35m56.684s
Uploading artifacts for failed job
Uploading artifacts...
WARNING: build.env: no matching files
ERROR: No files to upload
Cleaning up project directory and file based variables
ERROR: Failed to cleanup volumes
ERROR: Job failed: exit code 1