Add `core/transition_registry.go` with two helpers:
- `InitializeBinaryTransitionRegistry` deploys the system contract at
`params.BinaryTransitionRegistryAddress`. The contract's bytecode
returns the storage slot indexed by the call's CALLDATA, exposing
the transition state to off-chain readers.
- `WriteBinaryTransitionBaseRoot` writes the frozen MPT base root into
slot 5. The slot constant is kept private so callers go through this
helper.
Wire both calls into the three places that build state for a new block:
- `core/state_processor.go`: in `Process`, after the EIP-2935 system
call, when the current block is on UBT and the parent is not.
- `miner/worker.go`: at the end of `prepareWork`, with the same
fork-boundary check, so locally-built payloads also seed the
registry.
- `core/chain_makers.go`: in `GenerateChain`, between the EIP-2935
handling and the user-supplied `gen` callback, so generated test
chains see the registry deployed identically to a live chain.