Update to better support Sinon.js integration (ensure teardown called on exceptions)

In integrating Signon.js with QUnit and jsTestDriver, I found that if the tests threw an exception or an assertion failed, then jsTestDriver would not stop running and failed to report the error (at least the Eclipse plug-in).  I determined this was due to starting Sinon's fakeServer in setup(), but teardown() was never called to stop it.  I've added a try catch around the test.call(context) to catch errors and call teardown to make sure the fakeServer is stopped.