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

Fixes #5083 (based on #5105)
As the result is likely machine-parsed, let's not return long messages here - It would have been better to use status codes instead of strings, but as we're stuck with strings let's return short identifiers and not whole English messages.