script timeout should get reset even when async callback is called synchronously

Fixes Issue #6947
fix execute async script

the timeout needs to be after the script is called so that the asynchronous script provided by the user can be called before the timeout script in the case where both timeouts are equal

the test doesn't need 100ms, 10 will suffice.
Generate JavaScript API documentation from the deployed node module instead of
from the raw source tree.
Update the webdriverjs readme
Add some utility functions to simplify working with arrays of promises.
Add support for custom locators in webdriverjs

Fixes issue 6826
Remove a deprecated function.
Treat promise.fulfill/reject as no-ops instead of throwing if the promise has
already been resolved.
Implementing page loading detection after click in Firefox native mode
Undo waiting for a page to load after a native click