Replacing Math.random() with something a little more random.
Undoing change to Math.random() for now, this creates a weird bug
Fixed the SecureRandom so it only returns positive values
gradle: Allow absolute paths to keystore files
gradle: Allow storeType to be set (allows using .p12 files)
Merge branch 'master' into 4.0.x (gradle signing+SecureRandom)
Add hooks in CordovaPlugin and PluginManager for whitelist plugins

This adds three hooks to CordovaPlugin objects. In each case, a null
value can be returned to indicate "I don't care". This null value is
the default.

    public Boolean shouldAllowRequest(String url)
    public Boolean shouldAllowNavigation(String url)
    public Boolean shouldOpenExternalUrl(String url)
Defer whitelist decisions to plugins

There is a default policy, which is implemented in the case where no plugins override any of the whitelist methods:
 * Error URLs must start with file://
 * Navigation is allowed to file:// and data: URLs which do not contain "app_webview"
 * External URLs do not launch intents
 * XHRs are allowed to file:// and data: URLs which do not contain "app_webview"
Refactor ConfigXmlParser to allow subclasses
Remove unused Config methods (Breaking Change)
Remove whitelists from WebView classes
Remove whitelist config.xml parsing