Parsoid/Upgrade packages

We're aiming for deterministic package installs and using the tools the package manager, npm, provides. Please install npm v3.x (not v1.x or 2.x or 4.x or greater). For a consistent package state, try starting with:

npm i -g npm@3
/bin/rm -rf node_modules
npm install

Upgrading a package (or adding a new one) should go as follows:

node --version
# should give you 6.17.1 or above
npm --version
# should give you v3.10.10 or above (does not work with v1 or v2, and there's a bug in v3.10.8-9)
npm i --no-optional package@major.minor.patch --save(-dev)
npm shrinkwrap --dev
# git review

Now everyone's happy and the patch got merged. Go to the deploy repo and:

git pull origin master
git submodule update --init
cd src/
git checkout sha-of-the-above-commit
cd ..
rm -rf node_modules/
npm i --no-optional
npm i -g removeNPMAbsolutePaths # only necessary once
removeNPMAbsolutePaths .
git status
# verify only what's expected got changed
git review

Note that all the --no-optional business here is because service-runner > bunyan > dtrace-provider is an optional binary dependency that we want to avoid putting in the deploy repo.