fix browser/webdriver element/DOM sync issues

When webdriver throws errors whilst performing functions on webelements,
then attempt to relocate elements a second time and try the function
again (fixes stale and not visible errors).
Add throttle wait time to all calls to JS that return 'true' boolean
results (to sync browser and webdriver).
Move withWebElement function to web env context to simplify call and
maximise reuse.