[CB-3384] Make UriResolver assert that IO is not on the UI nor WebCore threads.
(cherry picked from commit 99341bce295d7ab373de9f91c43a4d2a59be22c2)
Let subclasses override focus behavior

Signed-off-by: Joe Bowser <bowserj@apache.org>
(cherry picked from commit 55865a4f1dcd0f24df5292e3621b77080939e6e1)
[CB-3384] Add a length getter for UriResolver. Change from interface -> abstract class.

Thinking here is that we can maintain compatibility going forward with a
base class as opposed to interface by having new methods on it have
default implementations.
(cherry picked from commit 990d91360d64324ba332e821fe512d712d7d5521)
[CB-3384] Reworked UriResolver into CordovaResourceApi.

Changes were made after trying to use the API for Camera, FileTransfer, Media.
The main difference is separating the concept of URI remapping from the read/write helpers.
(cherry picked from commit 77e9092108b4997abdc08afa630b8c16ee094f90)
Prevent NPE in case webview is lately initialized
(cherry picked from commit a9ebf50b86bcb9de40cbf4013e98fd1a24be25e8)
[CB-3384] Use the ExposedJsApi to detect webCore thread instead of IceCreamCordovaWebViewClient.

Also removes a debug log statement.
(cherry picked from commit 6fe18ae0abe137702da2072caa749c83cf326cf5)
[CB-3384] Fix thread assertion when plugins remap URIs
(cherry picked from commit b915aafb5be31912129b04c7e70b9c0a9908ee9c)
[CB-4198] bin/create should handle spaces in activity better.
[CB-4198] bin/create script should be better at handling non-word characters in activity name. Patched windows script as well.
(cherry picked from commit b4236b978355a599cad77a4d2a776354dbfdbe09)
[CB-4463] Updated bin/check_reqs to looks for android-18 target.Also fixed an issue in unix version of script that would invoke the `android` command if an error occurred.
(cherry picked from commit c2c5f71018a6821388e2516a6084818453b82de0)
[CB-4466] fixed jscript check_reqs to get target from project.properties
(cherry picked from commit 53b8da81985464b82d87e1655e6561f2076b4206)
Fix data URI decoding in CordovaResourceApi

It was not URI-decoding first, and so was broken for non-base64-encoded
URIs.
(cherry picked from commit 4e1aa8aa59d0a3d9c0deb1f57c9136a76535691e)
Log WebView IOExceptions only when they are not 404s
(cherry picked from commit 5451320350f8a814e3d09ab465710ddca462d243)
[CB-4495] Modify start-emulator script to exit immediately on a fatal emulator error.
(cherry picked from commit 121b74fa0c8b5c2aea25173d128b5745c3b85390)
Tweak the online bridge to not send excess online events.

It does so by having the JS tell it when online events have fired.
(cherry picked from commit 166b35bc6c5977cf547f4093690d554b57cb855a)
CB-5080 Find resources in a way that works with aapt's --rename-manifest-package
(cherry picked from commit 16de12a3ba3c0ed8cfa15e9c9d7d68d384d178bb)