Implemented timeouts.

I believe timeout functionality would be a useful feature for this library. When interacting with a website, especially in a mobile context where internet connection is not guaranteed, there can be some causes where you can call a handler and never receive a callback.

This PR fixes that problem, allowing the bridge to return a timeout error as the response callback. This ensures that for every call into a webview that expects a callback, it will always get one.