Add ability to change the requirement for retry

In many of our job configurations, an unstable result means the testing process went smoothly, but not everything passed. Conversely, a failure usually indicates an unexpected build failure (network issue, etc), which will likely perform properly when retried.

Includes one test - I didn't think it would be necessary to test all cases as performed for success, but if necessary I can add those as well.

```groovy
retry(3, 'UNSTABLE', {
  build('job-where-unstable-is-acceptable-result')
})
```