Add more end-to-end tests

The first commit cleans up the code, making it easier to refactor npm-exec internals.

The second commit fixes a bug where `npm.load` did not load the configuration.

The third commit adds tests for version tagging and `npm update`.

/to @rmg please review.