Avoid thread state races in EGL multithread tests
Previously, threads objects inside dEQP-EGL.functional.multithread.*
tests would conflate thread execution status with test results. The
former would only be set inside the thread, but the latter could be set
by other threads (e.g., a test thread might set its status to RUNNING
while another test might attempt to set the status of NOT_SUPPORTED).
These race conditions could lead to incorrect results.
Fix this by moving error and not-supported states out of the thread
execution state, and instead storing them as single-purpose flags inside
the test case object, avoiding the possibility of conflicting writes.
Change-Id: I2b117aa98c1c2b69b0d134610d6fd37656083e54