Introduce a specific exception type for verification failures
This introduces VerificationCheckFailedException to the Gradle API.
It's purpose is to indicate that a check task was successfully
executed but resulted in failure due to violations.
This allows other tools and Gradle logging to distinguish between
a verification tool failing to execute and one that failed for
"normal and expected" reasons.
The code quality and testing plugins are updated to use this new
exception type when appropriate.