Remove `NoThunks` instances for predicate failures and `ContextError` types
`NoThunks` instances are used for memory leak detection during development, but predicate failures should never be retained in the ledger state - they are only used for validation results. Removing these instances reduces code maintenance burden and instance derivation overhead. This change removes `NoThunks` instances from: - All predicate failure types across Shelley, Allegra, Alonzo, Babbage, Conway, and Dijkstra eras - All predicate failures in cardano-protocol-tpraos - All `ContextError` types (`AlonzoContextError`, `BabbageContextError`, `ConwayContextError`, `DijkstraContextError`) - The `NoThunks (ContextError era)` constraint from the `EraPlutusContext` class - The `NoThunks` deriving instance for `CollectError`