Add a submitBlock method to the Mining IPC interface, similar to the
submitblock RPC. This accepts a fully assembled block, validates it, and
if accepted as new, processes it into chainstate.
Unlike the submitblock RPC, this method does NOT auto-add the coinbase
witness nonce (via UpdateUncommittedBlockStructures). Since this is a new
interface and SegWit has been active for years, callers must provide a
fully-formed block including the coinbase witness nonce when a witness
commitment is present.
This is needed for Stratum v2 Job Declarator Server (JDS), where accepted
solutions may correspond to jobs not tied to a Bitcoin Core BlockTemplate.
JDS receives PushSolution fields and reconstructs full blocks; without an
IPC submitBlock method, final submission requires the submitblock RPC.
The method returns detailed status (reason/debug strings) matching the
checkBlock pattern, giving callers enough information to handle
validation failures.