Clean up pack targets. Better dependency tracking.

Target pack.@{project} runs unless classes emitted by quick.@{project} are up to date.

TODO: factor out duplicated references to build-@{stage}/classes/@{project}