Retains all match statement functionality, but rewrites all the match statement code to reduce bugs and mirror cpython. Also, it adds support for the rest of the patterns (hopefully).
Also this re-enables the codegen tests that the ruff port disabled.
Fixes: #5628 and #5491