Add pre_package event to wp8 project

WP7 project was already done in commit: bd2c667e947b3fda05541e0d1a124d23df60a132
Wait for the pre_package event to finish, or the update_csproj function might give unexpected results.
Fixes both the wp7 and wp8 parser.
Code style (indentation)
CB-5106:[win8] fixed tests for windows 8
CB-5106:[wp7] fixed broken wp7 tests
CB-5106: removed flood of cp error messages when running tests
CB-4748: Fail quickly if dir passed to cordova create is not empty.

Some upstream tools (e.g. mca) need to pass extra configuration to
cordova create. In order to avoid pre-creating .cordova/config.json file
for this, an extra parameter is added to cordova.create(), it should be
an object with the same structure as config.json.

If id or name are given in the extra config, they will be used only if
the value given as the function parameter is falsy:
id = id || cfg.id || DEFAULT_ID
CB-5125: replace child process exec with spawn
CB-5125 add tests for chil process spawn
CB-5183 WP7/8 custom_path is not correctly resolved by CLI
[CB-5147] emulate needs a space before error message
[CB-5142] improve grammar of emulate description
[CB-4976] Don't symlink into ~/.cordova/lib for local libs

If the user specifies a local URI in his config.json, we don't want to
symlink that lib into $HOME/.cordova/lib, just use it in-place as the
source of the platform.

lazy_load calls now return a promise for the path to the target, and all
logic in other modules that was recomputing the path into the global lib
directory has been fixed to just use that return value. This is more
flexible and supports this feature nicely.
CB:5187 on node  windows broken compile, emulate, run
CB-5187: remove unused var os_platform
increased version of plugman to 0.14.0 in package.json
[CB-5197] Updated version and RELEASENOTES.md for release 3.1.0-0.2.0
[CB-5220] "An error occurred" is missing an "A" ...
[CB-5220] "An error occurred" is missing an "A" ...
[CB-4994] Update xcode dependency to handle Xcode 5 capabilities.