CB-5063: Revert to copying cordova.js before user www dir
CB-4400: cd to project root in most cordova commands.

cd to project root dir as the first thing for most cordova commands by
calling a new func util.cdProjectRoot().

This function throws and exception if process.cwd() is not in a Cordova
project. In terms of interaction with the Q promises this exception
behaves the same way as those thrown e.g. by fs.readFileSync().

This change does not entirely solve the problem of running prepare while
in platforms/.../www/ dir (that is deleted during prepare). The
operation will now succeed, but the user's shell will stay in a bad
state with detached inode as the CWD.

The patch file has two separate commits in it (looks like it's not
visible here on the "View Diff" pane but will affect "git am"). One for
the main part and the second for tests.

Same diff on Github:
https://github.com/kamrik/cordova-cli/compare/CB-4400_chdir_root
CB-5320 Document avoiding sudo
updated version for 3.2.0-0.0.0 rc testing
changed rc version based off semver
CB-5364 config_parser - handle duplicates with children and text when merging
CB-5280 Update serve's help text to remove platform arguments
Change cordova serve's project.json to include etags.

Allows App Harness to only update changed files.
CB-5368 Cordova serve deflate content breaks IE

Switching the order so that we normally offer gzip instead of deflate.
http://stackoverflow.com/questions/1077869/internet-explorer-8-deflate
CB-5377 serve: should only indicate listening when it is
Fix issue not finding platform script when in subdir
- check platforms which have subdir
- append subdir to libDir for detected platforms
CB-5364 config_parser - check for null element text