Support Selenium Driver executeAsyncScript

Selenium Driver should timeout and return after executeAsyncScript() if
the test is stuck.

This pull request can support all current test engines, including YUI,
Jasmine, Mocha, and QUnit.