Don't call done when tests are cancelled unless registerTests was called

Otherwise the Reporter API is violated. done should only be called after
registerTests.

This would manifest as a crash in the suite runner if it was cancelled
while gathering the list of tests to run.