This patch pulls `expect.toHaveScreenshot()` from 1.20 release.
We'd like to experiment more.
After this patch, there is no 'toHaveScreenshot' mention in the
codebase.
Soft expects will still fail the test, but will not abort it's execution. As a consequence of this:
- `TestResult` now might have multiple errors, which is reflected with a new `testResult.erros: TestError[]` field.
- `TestInfo` now might have multiple errors as well, which is reflected with a new `testInfo.errors: TestError[]` field.
Fixes#7819