nerf better

Fixes npm/npm-registry-client#77, partially addresses
npm/npm-registry-client#70.
use new npm-registry-client API

Makes a *lot* clearer when the CLI is doing something with auth
implications, by explicitly pass auth to registry client.  Moves lookup
of credentials into mapRegistryToURI, which makes the code more
consistent.
style tweaks
directly cache search metadata
handle caching of metadata in npm itself
add npmconf → registry client config adapter