When deserialising a flow, set it as `compatible=false` if the checkpoint fails to deserialise. See `SingleThreadedStateMachineManager.tryCheckpointDeserialize`.
If a checkpoint has been marked as incompatible, it should not be loaded and run at node startup. See `SingleThreadedStateMachineManager.restoreFlowsFromCheckpoints`.
Moved to from due to further thought around its functionality needs to be decided. We probably need to have a FEAT to describes the benefit to a node operator.
This will work similar to pausing a flow, sessions messages still retrieved etc.
Operators can then downgrade their cordapp or node to fix the incompatible flows, kill them or retry them from a flows parameters (from metadata) as a new flow.