Update Tap Tests to Have No External Dependencies

In an effort to add continuous integration to *npm/npm*, I've updated tap tests to rely on no external dependencies.

This pull request relies on https://github.com/npm/npm-registry-mock/pull/18, and will need to be updated with the appropriate package version when this is merged.

A few caveats:

* **git-cache-locking.js** hits an external git dependency, and has been disabled for travis.
  * In the future it would be great to start building out an approach for mocking git, which would let us move more tests over to travis.
  * I was looking at https://github.com/substack/pushover for this purpose.
* **lifecycle-signal.js** is disabled for travis, awaiting this pull request: https://github.com/npm/npm/pull/4663
* the timeout value has been increased for tap. Some tap tests have 50 or more assertions, which can hit the 30 second timeout, even though the test is running as expected.