Migrate to EraBasedProtocolParametersUpdate
Adapt cardano-cli to the cardano-api removal of ProtocolParametersUpdate in favour of EraBasedProtocolParametersUpdate era. - Read.hs: bring IsShelleyBasedEra era into scope via shelleyToBabbageEraConstraints, satisfying the HasTextEnvelope instance for the now era-indexed UpdateProposal era without changing the function's exposed type. - Friendly.hs: rewrite friendlyProtocolParametersUpdate to take a ledger PParamsUpdate directly (caller in friendlyUpdateProposal does the createEraBasedProtocolParamUpdate conversion) and dispatch on ShelleyBasedEra constructors to determine which fields apply per era. Helper functions per field group carry their own ledger constraints (EraPParams, ProtVerAtMost N, AlonzoEraPParams, BabbageEraPParams) and the case branches resolve them via instance lookup once the era is concrete - no eon witnesses required. Output preserves the prior JSON shape exactly (verified by hprop_golden_view_alonzo_update_proposal_yaml). Cost models and Conway-only governance fields are deliberately not emitted, matching prior behaviour. - Compatible/Governance/Run.hs: drop the redundant createEraBasedProtocolParamUpdate / fromLedgerPParamsUpdate round-trip in shelleyToBabbageProtocolParametersUpdate; makeShelleyUpdateProposal now takes EraBasedProtocolParametersUpdate era directly. - cardano-cli.cabal: add cardano-ledger-binary dep for getVersion (used to render the protocol-version major component).