CB-5777 Fix "platform update" not updating cordova.js
Fix move from lodash->underscore where underscore doesn't have "merge"
CB-5006 Fix searchpath not being passed to dependent plugins.
CB-5802 Updated version and RELEASENOTES.md for release 3.3.1-0.2.0
Add an option to config.js to not write config.json during create.

This really should be the default, but we can wait to change it.
Allow lazy_load libs to work without an id and version for local paths.
Expose util.isCordova as cordova.findProjectRoot()
CB-5808 Fix lazy_load stripping off windows drive letters
Add a verbose log when running update command
Bump node-xcode version
Update node-xcode dependency to 0.6.6
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cordova-cli

Conflicts:
	package.json
CB-5813 Fix missing quotes on update and ls commands
CB-5299 Cache pbxproj to avoid re-parsing it for each plugin.

Parsing pbxproj is very slow (~250ms on my machine). It is done for each plugin
that needs to add frameworks to the ios project.
util.isRootDir check for platforms/

platforms/ubuntu contains config.xml, so extra check is required
CB-5782 Add a derived exception class for better error reporting in CLI

The on('uncaughtException') handler was removed recently in cordova-cli because
it was hiding the stack traces of some legit exceptions, but this results in
scary traces for simple errors like running outside a corodva project.

This change reintroduces the on('uncaughtException') handler and adds a special
CordovaError class for such simple errors. For exceptions of CordovaError class
only the message will be printed, for all other errors - the full stack trace.

Another pass over the code will be needed to find and convert the Errors to
CordovaErrors where appropriate. Will be done in a separate change.
CB-5590 Have config.xml version map to CFBundleShortVersionString instead of CFBundleVersion
CB-5782 Use CordovaError wherever relevant.

Other than the trivial changes that look like
new Error(...) -> new CordovaError(...)
there is also a change in util.js to throw the error instead of returning it
and associated changes in specs.
CB-5493 lazy_load now downloads to a temp dir and then moves.

If "cordova create" is interrupted with Ctrl-C while downloading the cordova
library for www, a bad version is stored in ~/.cordova/lib/. That bad version
is then used for future runs of "cordova create" which results in projects with
www dir containing no files except a subfolder named like
cordova-app-hello-world-3.2.0-ee9a86g3
CB-3612 Don't pass --device to "run" command by default. Update help text