Reset backends before each test

Rename StartBackendsInOrder() to ResetBackends() and make it responsible for
resetting all backends back to a known good state; started, default handler,
edge considers healthy.

This can be called at the start by init() and then by any tests that modify
the backend state. If no backends have been stopped then it will be quick.

It's not easy to write a test for this because of how much we'd have to mock out with interfaces. But waitForBackend and our other tests will fail if this doesn't work.

---

Pushing what I did on Friday so that someone can write the other failover tests if they fancy. No, I'm not working today. Yes, I'm now closing my laptop.
Using the interface is much nicer :thumbsup: