Bugfix: submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock

Fixes #5083 (based on #5105)
This enum needs to be exposed to users somewhere/somehow (possibly by reimplementation) for it to be of use... it's an external interface, after all.