CB-1126: Splashscreen
Fix warning about .close() not being called in FileUtils.
Abstract JS->Native API calls into a class.

-setNativeToJsBridgeMode() and poll() can now be used via the JS interface
exported via addJavascriptInterface.
-prompt() now forwards calls to this class so that the logic will be the
same whether prompt() or the JS object is used.
Fix NPE when using LOCATION_CHANGE exec bridge.
Set the initial network-available state on start-up.

I've been assuming that it always starts as true, but this will ensure
that it does.
Disable debug logging of loadUrl for javascript URLs.

When using LOAD_URL bridge mode, this is far too verbose.
Refactor how PluginResults are sent to JS.

There is now a sendPluginResult() as well as a sendJavascript() on
CordovaWebview.
sendPluginResult() sends the result so that it can be parsed without
using eval(), when the active bridge allows it.
Optimize encoding of PluginResults within NativeToJsMessageQueue.

Also included in this refactoring:
 -Better use of StringBuilder when encoding messages
 -Defers actual encoding of messages until they are popped.
 -Add a pause/unpause of message queue so that all pending messages will
 be sent to JS in order at the end of a PROMPT or JS_OBJECT context.
 Before they may not have been sent in order.
 -Tweaked LOAD_URL so that it always happens on the UI thread (avoids
 log warning).
Add constant to disable non-exec() messages in Native->JS bridge.
Always send as many messages native->JS in one payload as possible.
Use a thread pool when executing async plugin operations.
Remove TODO comment about calling webView from non-ui thread.

I tried it and it turned out to be a bit slower instead of faster.
Add a flag to disable exec() chaining for benchmarking.

- Also moved ENABLE_LOCATION_CHANGE_EXEC_MODE to NativeToJsMessageQueue
  so that all exec() related flags are in one place.
Updated JS snapshot.
Fix a deadlock in CallbackServer.java.

-Manifested when running mobile spec. Was caused by CallbackServer
obtaining lock #1 then #2, while other thread obtained #2 then #1.
Resolving CB-1496, this is faster than a pull request
fixing windows appinfo.jar
Fixing CB-1462, there's a difference betwene Global and Local listeners:
removing verbosity
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-cordova-android