CB-5765 Identify root project folder using www and config.xml instead of .cordova

It's now possible that .cordova will not exist.
CB-5764 Move hooks/ to top-level instead of under .cordova

This also changes to not pre-create hooks/ subdirectories since git
doesn't add empty directories anyways. Instead, it adds a README.md to
hooks.
Forgot to remove hard-coded debug path in previous commit.
CB-5006 Plumb --searchpath into cordova plugin add
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.