Revert the contents of the avital-client-compatibility branch.

We will rebase linker on top of this commit, and then re-apply.
stuff that doesn't have conflicts
resolved conflicts in packages.js.
we merged dependencies and metadataFileHashes as dependencyFileShas
check in geoff's version of bundler.js
export sha1
noMinify -> minify
we don't think we need .call
update bundler.bundle API to use packageSearchOptions and releaseStamp
fix a bug
don't update NPM in warehouse
hashes
bundle NPM modules correctly.
tests mostly pass.
don't lose emily's change to a moved file
refactoring toward Library
continue refactor toward Library
further refactor toward Library
bundler takes a library
continue factoring out Library
factor more logic into Library
Packages have a Library. This simplifies things considerably