CB-7070 Don't create hooks/ if it already exists
CB-6992 Fix ios platform add/prepare when app name contains unicode chars

It is necessary to normalize characters because node and shell scripts handles
unicode symbols differently.

github: close #40
Add --captureExceptions flag to jasmine

Without this flag exceptions such as bad syntax of missing modules caused all
the tests to abort but the exit status was still 0. CI tools interpret this as
successful test.
Look at the old uri in config.json in addition to the new url (i vs. l).

For backwards compatibility. In case someone has scripts tat pass extra JSON
config to cordova create.
Remove npm-shrinkwrap.json

After some discussion, looks like the lib doesn't need a shrinkwrap. The one
in end-user tools (CLI, plugman, etc.) should take care of freezing the deps
for the tools to work.

In CLI, the shrinkwrap file be created temporarily for release and
then removed again, updating the coho docs with this:
http://github.com/apache/cordova-coho/blob/master/docs/tools-release-process.md
CB-6776: Fix uri/url renaming bug

Another backward compatibility issue with tools that provide custom
url for platform files as part of extra config passed to create.
CB-7087 Retire blackberry10/ directory
Fix typo in comment.
CB-7091: Don't call check_requirements during platform add

check_reqs is called from the platform build script, there is no use in calling it
twice.

Instead, added a simple check that if a platform has a list of compatible host
OSs (defined in platforms.js), the host OS is checked against this list.
CB-7083 Missing SDKReference support on Windows Phone
CB-6874 Consolidate <Content> tag additions into 1 ItemGroup
CB-7091: Remove check_requirements() funcs from platform parsers

No longer used, removing. They were either:
1) Empty
2) Duplicating the chqck_reqs call that is also done by platform create scripts
3) In Ubuntu duplicated the code from check_reqs
CB-7100: Use npm based lazy-load by default

Older git based download is still available under a --usegit flag e.g:
`cordova platform add ios --usegit`
`cordova prepare ios`

The cached files are stored in different locations depending on where they
were downloaded from because we don't want dirs that are not npm packages in
an npm managed cache dir.
~/.cordova/lib
~/.cordova/lib/npm_cache

If a copy downloaded via git already exists in the cache, lazy_load should
not attempt to download another copy from npm.
Merge branch 'CB-6874' of https://github.com/MSOpenTech/cordova-lib
Merge branch 'CB-7083' of https://github.com/MSOpenTech/cordova-lib
Added unified hooks support for cordova app and plugins

* Hooks can be defined in .cordova/hooks/hook_type, hooks/hook_type directories, config.xml and plugins/.../plugin.xml
* Javascript hooks retrieved from config.xml and plugins/.../plugin.xml will be run via new module loader
* Introduced before_plugin_install, after_plugin_install and before_plugin_uninstall hooks
Updated hooks documentation