Add a JSEnv test for future completion when stopping (closes #1339)
Restructure AsyncJSRunner to be Future based
Fix #1315: Add timeout to AsyncJSRunner.await and use it
Fix #1330: Remove sleep-wait in PhantomJSEnv
Merge pull request #1340 from gzm0/improve-js-env

Improve js env