test decorator allowed_failure

Test runners each have different interpretations of what should be
the result of an @expectedFailure test if it succeeds.  Some
consider it to be a pass; others a failure.

This new decorator runs the test and, if it is a failure, reports the
failure and considers it a skipped test.

Change-Id: Ia87dda2780a9fe4130b2820298f07f983d5db80b