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-5183 WP7/8 custom_path is not correctly resolved by CLI
Merge branch 'CB-5183' of https://github.com/sgrebnov/cordova-cli
readability + code quality in wp7+8 parsers
merging
serve: provide basic entry point

Index:
* List included platforms (and available platforms)
* List included plugins
* List package name, id, version

* Provide directory redirects
* Implement directory browsing
serve: Fix doRoot() not being called & remove duplicated table.
CB-5183 WP7/8 lib path is not correctly resolved by CLI (additional changes)
Cleaning up wp7+8 parsers' use of promises. Fix tests.
[CB-5143] Locate the actual Android app .java file much more carefully.
[CB-4866] Execute hooks in ascending order of any leading numbers

Fall back to alphabetical searches if they don't start with numbers.

Includes tests for the new ordering behavior (which sorts 1.sh before
07.sh.
CB-5283 Improved cordova serve message to be more descriptive
fix conflict with removed head code
tests were failing attempting to match lib/dir and lib\\dir on windows
CB-5307: Remove references to Callback and Incubator
Remove accidental console.logs in the tests.
CB-5063: Keep cordova.js in platform_www to avoid copying it from lib.

Currently all platform parsers (src/metadata/*_parser.js) copy
cordova.js from util.libDirectory for each run of prepare. This results
in errors when changing machines since the ~/.cordova/lib directory is
not populated.

With this change all the parsers construct the project www dir by first
copying contents of a new dir named platform_www (which contains
cordova.js) and then the www dir from the app.

Until individual platform create scripts will be updated to create the
platform_www dir, prepare.js checks if the platform_www exists and if
not, creates it using cordova.js from ~/.cordova/lib.

Even after the platform create scripts are updated the check will be
required for projects that were created using older version and don't
yet have a platform_www dir.

CB-5063: Keep cordova.js in platform_www to avoid copying it from lib.

Currently all platform parsers (src/metadata/*_parser.js) copy
cordova.js from util.libDirectory for each run of prepare. This results
in errors when changing machines since the ~/.cordova/lib directory is
not populated.

With this change all the parsers construct the project www dir by first
copying contents of a new dir named platform_www (which contains
cordova.js) and then the www dir from the app.

Until individual platform create scripts will be updated to create the
platform_www dir, prepare.js checks if the platform_www exists and if
not, creates it using cordova.js from ~/.cordova/lib.

Even after the platform create scripts are updated the check will be
required for projects that were created using older version and don't
yet have a platform_www dir.
fix 3 failing tests for windows8 and wp8 and add assertions for wp7 too.