Allow tests to reset bottle hooks on teardown

This avoids polluting other tests that might invoke the installer, thus
executing any registered hooks.
implement non-recursive missing
remove dependency handling
no longer exec the build script
the forked build process should not run any at_exit handlers
remove handling of multiple installation attempts

handling dependency expansion prior to any installation will eliminate
this problem
fix dependency equality
pass deps and options into the installer
move bottle-arch warning to install command
move warning up to eliminate use of an exception

install is the only command that can trigger this warning, so put the
code where it belongs: before instantiating the installer.
remove CannotInstallFormulaError

we'll need a similar sanity check, but that should happen prior to
instantiating the installer
remove conflict checking from installer

this should happen prior to instantiating the installer
install tests now use the actual installer