Phonegap 2.x.x

This pull request does 3 things.
1) Brings the phone gap-2.x.x branch up to date with changes in the master branch
2) Modifies the WebSocket constructor to allow the second argument to be either an options object, or a subprotocol specification.  Using a subprotocol specification as the second argument is consistent with Chrome and iOS WebSockets.  If a subprotocol specification is used as the second argument to the constructor, an options object can still be passed as an optional third argument.
3) Adds support for Binary send and receive using ArrayBuffer and Blob.