Adding a ByAsyncJs finder, and tracking timeouts as they are set.

I hope to combine these changes to allow for a JS finder that actually honors the implicit wait timeout.

Additionally, I removed the redundant timeout methods.
async_script == script
implicit_wait == implicit