Fix stop and start

This update fixes the `start()` and `stop()` functions to be more in line with how they behave in QUnit. You should be able to call them multiple times and they should act essentially like a stack, so this should work:

```javascript
test('stops and starts', function() {
  stop();
  stop();
  start();
  start();
  ok(true);
});
```

Without this a test like this won't work:

```javascript
test('something with a promise', function() {
  expect(1);

  doSomething().then(function(result) {
    ok(result, 'result is truthy');
    start();
  });
  stop();
});
```