Fix usage of promises in tests, allow returning promises from test runners, fail tests when done is called with error.