No separate built-package interface

The extra interface for built packages isn't really needed; for native
packages, which we don't need to actually build, we can just use the
noop builder implementation.  So packages are now always created from a
builder instance and a packager instance, and all of the actual
interesting logic happens in those two instances.

This was needed to eliminate a bug where we weren't always installing
build dependencies correctly.  For instance, if package A depends on B,
and B build-depends on C, then we wouldn't install C when trying to
install A.  Now we do.