Make match_ignore_ascii_case! future-proof.
Change the usage syntax to require a comma on the last non-fallback arm, which is a [breaking-change]. The old definition has started to emit a warning in recent nightlies and is likely to be an error in future versions: rust-lang/rfcs#1384 The new definition is recursive to resolve ambiguities. Unfortunately this makes error reporting terrible: rust-lang/rust#31022