fix(jasmine): don't swallow exceptions in afterEach

It turns out that `tearDown()` in `unittest/unittest.dart` swallows
exceptions (at least in the current version.)  This means that
exceptions thrown in our `afterEach` functions are silently swallowed
and cause our tests to pass incorrectly.  As an example, the 24 tests
that were updated in commit d663667620dc4982c89b2914beed61e606023f33
should have been failing with the exception `Unflushed requests: 1` but
did not.  This change makes it so that these exceptions do show up.
fix(startup): Avoid creating rarely needed objects

This stops bugs effecting Firefox from crashing the entire test suite.

For #801
feat(karma): Allow Firefox to execute Karma tests

For #801