cannon: 64 bit support for multithreaded, keeping single threaded 32bit
Description
A version of https://github.com/ethereum-optimism/optimism/pull/11388 but done so that the single threaded vm remains unchanged as a 32bit VM and only the multithreaded vm is converted to 64bit. This lets us merge the 64bit upgrade without breaking backwards compatibility.
The solidity hasn't been changed - we'll need to pull in the 64bit upgrade for that which can be done by just completely duplicating the cannon contracts.
The multithreaded VM isn't running all tests yet (https://github.com/ethereum-optimism/optimism/pull/11333) fixes that so those tests have been commented out here - we'll need to pull in the changes from that PR to make it work.
To automatically switch VM types based on the prestate we'll likely need a better prestate format which can be done separately - currently its still based on the --type flag to cannon.
This PR is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 5 days.
This is clearly never going to merge as-is. Closing but we can still find it in the history for reference when we come to merging in 64bit support.