CB-6879 fix cordova serve
CB-7042 serve.spec: enable basic serve test
CB-7042 serve.spec: really expect not a Cordova-based project exception
CB-7045 plugman.install.spec: shell.which depends on plugman.raw.fetch actually being called
CB-7045 plugman.install: engine.currentVersion should be a semver or null

not ""
removed "pkgName "
CB-7056 serve: return promise of server

+ restore serve tests

This fixes a regression from:

    Update "cordova serve" to work with promises refactoring
    apache/cordova-cli@d3b329277209d8863507f3b8bf0bad11e73736ef
    Oct 3 14:27:53 2013 -0400
removed extra whitespace
Merge remote-tracking branch 'marti1125/CB-7055'
CB-7037 platform check doesn't warn when it can't install a platform

cordova platform check will now report when:
 * it can't create a platform
 * it can't run a new platform version script
 * a new platform version script doesn't report a version
CB-7056 serve: fix Android test, make tests conditional

Fix **Android** merges codepath, as it turns out that merges
doesn't need the platform specific hack.

Adding **BlackBerry 10** test.

**Android**, **iOS** and **BlackBerry 10** require specific scripts
to be available, otherwise they fail.

Introduce `itifapps` and `cit` (conditional `it`) based on **Jasmine**'s:

* `xit` -- ignore test
* `iit` -- run these tests, but skip it tests
* `it` -- run these tests, unless there are iit tests
CB-7063 save.spec and restore.spec use a proper spy
CB-7045 (fix up quotes to make jshint happy)
CB-7056 make tests conditional using it/xit instead of iit/it

Apparently iit in any files makes jasmine skip all it tests in all
other files...

To address some flakiness in the tests, temp directory changes
between each test.
CB-6776 Make project/.cordova/config.json integrate with platforms.js
CB-6776 (use _.extend instead of custom mixin function)
CB-7063 (fix case of Q)
CB-7065 lazy_load: do not append tgz for non urls
CB-6776 (avoid stomping on global platforms properties)
CB-6776 (correct windows8 fallback path)