Code clean-up of FileTransfer

- Fix warnings about toLowerCase()
- Don't assume connections are HTTP (fails for file://)
- Use StringBuilder
- Remove no-ops of disconnect() & keep-alive
[CB-2213] Added NATIVE_URI support.

This is mostly the same as FILE_URI on Android.

Also replaced calls to `stripFileProtocol` with the more general-purpose `getRealPathFromURI`.  This helps support some operations on content URIs.
[CB-2095] Delete file on FileTransfer.download fail
Add check for build targets in create script

I installed the android sdk via homebrew, which does not install any build targets by default.

That resulted in the create throwing the following somewhat cryptic error.

An unexpected error occurred: "$ANDROID_BIN" create project --target $TARGET --path "$PROJECT_PATH" --package $PACKAGE --activity $ACTIVITY >&/dev/null exited with 1

This just adds a check that the variables that are set to the values of the build targets are properly set, and exit if they are not.
CB-2408: There should be a check for the browser history, but the logic intentionally doesn't match
Update framework/src/org/apache/cordova/ContactAccessorSdk5.java

`Im.PROTOCOL` is a String, not an int. Treat it as such to prevent an Exception being thrown when parsing `null`.
[CB-2297] Fix for geolocaion database error
Added a file chooser plugin.