fix typo in a comment
Decompose common dev_bundle build logic and variables.
Source build-dev-bundle-common.sh in generate-dev-bundle.sh.
Add script for building node separately.
Add script for building mongo separately.
Download pre-built node and mongo build artifacts from S3.
Don't remove the rimraf dependency from pathwatcher/node_modules/.

One of the actual dependencies (as opposed to devDependencies) of
pathwatcher (fs-plus) depends on rimraf, but it doesn't get installed in
pathwatcher/node_modules/fs-plus/node-modules/ because it's already
installed in pathwatcher/node_modules/, so we should avoid deleting it.
fix typo, thanks @dgreensp
generate-dev-bundle: use local node/mongo tarballs

(kind of like the dev bundle itself)
separate server deps from tool deps

move package.json to a JS file so it can have comments.
move tool deps to package.json to run npm dedupe
switch unmatched pushd to cd
Merge branch 'dev-bundle-cleanups' into devel
Install pathwatcher from NPM instead of GitHub.
Make a note of future aspirations about installing pathwatcher.
Trigger a rebuild to pick up @glasser's dev_bundle/server-lib changes.
Implement funcUtils.coalesce(delayMs, callback).
Use pathwatcher.watch to trigger rebuilds and restart the server.

Fixes #2135.
Fix anticipated pre-release calculation

This commit fixes a 0.9.3 regression where the calculation of the
topLevelPrereleases object was not updated with the introduction of
disjunction constraints (||) and would always be empty.

topLevelPrereleases and useRCsOK are merged into a single
anticipatedPrereleases option which is now passed in to the
constraint-solver package rather than constructed inside it. (This
object will also be used in ProjectContext as part of PackageDelta
calculation.)

The usedRCs return flag is now called
neededToUseUnanticipatedPrereleases.
Show package changes and prerelease warnings

This reimplements functionality that had been removed as part of the
`isopack-cache` branch refactoring.

Information about package changes is encapsulated inside a
PackageMapDelta object on the ProjectContext.  It is the responsibility
of the command that prepares the ProjectContext to choose to call
projectContext.packageMapDelta.displayOnConsole at the appropriate time
if it wishes to display changes.

Part of #3006.