Add onPluginsReady event, and join on it before firing onDeviceReady

This happens only when a magic variable (window.__onPluginsLoadedHack)
is set, which is done by the generated code in the automatic plugin
loader prototype. A temporary hack that can be removed when the
prototype is either rolled into the main line or scrapped.

The behavior is unchanged when the variable is not set.
[2526] Ensure navigator keeps "this" object for native functions
CB-2103: Forgot to send the response body to the error callback. Fixed now.
CB-2103: File Transfer didn't send the body to the FileTransferError constructor.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cordova-js
CB-2530 and CB-2239 Multipart plugin result

This patch does a bunch:
* [ios&android] Adds support for multiple argument callbacks for
  win/fail (by way of updating callbackFromNative)
* Adds MultiPart message type, which supports an array or return
  arguments from a plugin result (and will massage each argument, such
  as ArrayBuffers)
* Update Echo plugin to test MultiPart messages
[Android] Fixing failing jake tests

Android jake tests were testing android's callbackFromNative arguments
are called with specific parameters.  The format changed slightly with
the recent MultiPart message type, so I had to update the tests.
2.5.0
Merge branch 'next'
Implement FileTransfer with XHR for qnx
switch alert to console.error for fail to load webworks.js
fixing deviceready
Merge branch 'master' into next
[CB-861] Header support for FileTransfer download

Added support for an optional options object as the final arg. Currently only handles the options.headers object (as per the issue).

`FileTransfer.download(source, target, successCallback, errorCallback, trustAllHosts, options)`

This is needed for using FileTransfer.download with Basic Authentication, etc. Sadly since Android 2.x doesn't support XHR2, this is needed in FileTransfer.

I have only added support to Android and iOS (see other PR's).
Fixed CB-2620: console.log prints only the first argument on Xcode console
[CB-2621] Added OS X platform
Added .gitignore so I can add an empty directory to git
[OS X] Fixed plugin callbacks not being called
Add readAsBinaryString and readAsArrayBuffer to FileReader
[WindowsPhone] CB2592, remove CordovaCommandResult