Rework libcheri's _chsbrt_invoke assembly function, which wraps CCall.
Properly save callee-save registers, and be much more conservative about
clearing capabilities before call -- and after return.  Document both
the calling convention and implications more clearly in comments.  There
are some obvious optimisation opportunities here, and the cache footprint
is currently quite large.