Surprisingly this leads to some code size savings on itsybitsym4,
even though LTO optimization should have let the compiler deduce
(almost) all of this.
When a compiler knows a call can never return, it is possibly able
to avoid emitting code, such as saving caller-saved registers to the
stack, or doing _ANYTHING_ affter the function returns, explaining
why code size savings is possible with this attribute.
With the exception of raise_deinited_error, these were found by checking
the functions found by `-Wmissing-noreturn` and making a case by case
decision. However, this dignostic can't be enabled unconditionally as it
has false positives, functions we do NOT want to mark as noreturn.
Testing performed: built itsybitsy m4, flash size savings 128 bytes.
didn't test on hardware as none came on this trip with me.