Add master-to-master (foreign-key) reference support + validation to icfpy, in parity
  with icf.js@1.1.0. (icfpy is a faithful behavioral port — keep names Pythonic but the
  diagnostic CODE string identical.)

  CONTEXT
  ICF spec §13 now allows a master data record to reference another master data record via
  the existing `MasterType:MasterID` syntax in a field value (a foreign key):

      @masters
      Vendor:
        - V001, ABC Developers, Chennai
      Project:
        - P001, XYZ Project, Coimbatore, Vendor:V001

  The Project row's last field `Vendor:V001` references the Vendor master V001.

  REQUIREMENTS
  1. Parsing needs NO change — `Vendor:V001` is already a plain string field value.
     Add a test proving a master row preserves and round-trips `Vendor:V001`.
  2. `IcfMasters.resolve_reference("Type:Id")` (or your existing equivalent) already
     resolves against the masters map; confirm it works for a reference in a master field.
  3. Add referential-integrity validation (NEW, validation-only):
     - While building each row (masters AND data, where the line number is known), record
       every value matching the regex `^[A-Za-z_][A-Za-z0-9_]*:\S+$`.
     - In the final-validation pass (after the whole document is parsed, so all masters
       exist — supporting forward references within @masters), for each recorded value:
       take the text before the first ':' as the Type; if that Type is a DECLARED master
       type and resolve_reference(value) is None, emit a NON-FATAL WARNING:
          code:    "UNRESOLVED_MASTER_REFERENCE"   (exact string — parity with icf.js/icfj)
          message: 'Reference "<value>" does not resolve to any "<Type>" master record'
          line:    the 1-based line number
     - The "prefix is a declared master type" gate prevents false positives on emails
       (no colon), URLs (`http://x`), and timestamps (`09:00:00`).
  4. Tests (mirror icf.js):
     - round-trips a master→master FK fixture; find("Project","P001")["VendorRef"] == "Vendor:V001";
       resolve_reference returns the Vendor whose Name is "ABC Developers".
     - validation ACCEPTS a resolvable FK (no UNRESOLVED_MASTER_REFERENCE).
     - validation WARNS (not errors; is_valid() stays True) on dangling `Vendor:V999`;
       message contains "Vendor:V999".
     - NO false positive for `vendor@example.com`, `http://x.test/a`, `09:00:00`.
  5. Update DOCUMENTATION.md accordingly and add the new code to the diagnostics list.
  6. Bump the version to 1.1.0 for parity. Run the full test suite; keep all tests green.
     Do NOT change markers, escaping, or writer output — validation + docs + tests only.

  Reference: spec §13 "Master-to-Master References (Foreign Keys)"
  (https://icformat.org/icf/specification/v1/) and the icf.js implementation.