Generalize Bavarian loader to a shared Landesrecht loader

Prepare wave six (Landesrecht of the remaining Länder) by lifting the
Bavaria-specific stem-law loader to a shared one. Unlike Bavaria (Art./§
inversion), the other Länder structure their stem laws in §, so the loader must
handle both sigils.

- Move gesetz/bayern/{BayRechtLoader,BayRechtTextParser} to
  gesetz/land/{LandesRechtLoader,LandesRechtTextParser}; the norm head now
  matches "§ N" as well as "Art. N" and derives the sigil per norm from the
  match. Cross-reference keywords in the norm head are excluded only as whole
  words (so a title "Satzungen" no longer trips on "Satz"), and the juris
  abbreviation may be multi-token ("(GO NRW)").
- Derive the superscript mode data-drivenly from the loaded stem law
  (Superskript.traegtSatznummern) instead of from "is it gii-XML": Bavaria and
  Lower Saxony keep their amtliche Satznummern, the Bund and Länder without
  official sentence numbering drop them.
- Recognize the neufassung idiom "erhält/erhalten folgende Fassung" (Schleswig-
  Holstein, Niedersachsen) via a NEUFASSUNG_VERB building block, additive to
  "wird/werden wie folgt gefasst".

Federal and Bavarian behaviour is unchanged (219 tests green, pinned acceptance
numbers UWG 19/0, GEG 66/53, GEG-GModG 90/9, IfSG 42/24, BayJG 149/154 hold).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Change-Id: I55a70a7932bf657a2346ca70f3fa05e173bf80ad
9 files changed
tree: 0473edd67bcf8924d9d8fd3baa13dbd0e5086a00
  1. .mvn/
  2. src/
  3. .gitignore
  4. COPYING
  5. FASSUNGEN.txt
  6. mvnw
  7. mvnw.cmd
  8. pom.xml
  9. README.adoc