replace --package-dir with the ability to specify paths to packages.

while I'm at it, fix it so that it actually works if the package's on_test tries
to use() itself (which is common). This previously did not work with
--package-dir