text: Title: Allow listeners to change execution status 
  Body: Listeners using the v3 API can set the status and message of each executed keyword and a control structure, but these changes do not affect the actual test execution. For example, changing keyword status from PASS to FAIL changes the status of the keyword in the log file, but subsequent keywords are executed normally as if the keyword would PASS. Similarly, changing keyword status from FAIL to PASS changes keyword status in the log file, but the failure still propagates and the test fails.
  
  We should enhance the execution logic so that if the test status or message is altered by listeners, that change is taken into account. This would allow failing or skipping test, suppressing failures and so on.
  