`npm version` should work in a git directory w/o git

If a package seemed to be located in a git directory (for example, if it
was alongside a ".git" directory), but the user did not have git on
their path, npm would throw a cryptic error about calling trim on
undefined.

With this patch, npm will log that git was not found, and that tagging
the version was skipped, but otherwise go on to updating the
package.json file.

This was probably primarily felt by Windows users, where git might be
located within a GUI client, but would be using npm from the command
prompt.
Fix default `loglevel` doc

Default is `"warn"` now.
Add read-package-tree@2.0.0
npm-package-arg@3.0.0
realize-package-specifier@2.0.0
Factor fetch-package-metadata out into a stand alone function
New installer (WIP)