Make sync::raw::Sem use Unsafe to manage mutability instead of transmuting an unsafe pointer
Provide a witness pattern for non-exhaustive patterns
Check pattern refutability the same way exhaustiveness is checked
Add support for fixed size vectors in let/arg patterns

Fixes #7784
Add unreachability detection for missized patterns of fixed size vectors

Fixed #13482