Fix/various 20140430

3 distinct commits: stabilisation delay for ServiceFailureDetector, and then two non-deterministic test fixes based on failures observed on buildhive.

Please note:
* For `testParallelTaskFailsWhenIntermediateTaskThrowsException`, what behaviour do we want for the `parallelTask.get()` - should it wait for everything to be done, or just return on the first failure. If the former, then we'll also need to change `ParallelTask.runJobs` to include a try-catch and to adjust the test.
* For `ServiceFailureDetector`
  * probably best consider it a complete re-write when reviewing.
    But luckily lots of good tests already existed in `ServiceFailureDetectorTest`.
  * Should `serviceLastUp` be set based on `healthy` in `checkHealth` rather than in `onServiceUp` just based on the serviceUp attribute.
    I'm leaning towards that, so thinking of removing the "optimisation" of not calling checkHealth if value is same as last time.
    But I'll look at that in the morning when less tired!