merge pseudo target and target

the pseudo target layer was interesting, but too cumbersome, it's easier
to use targets with no output file / rule to indicate rather than having
the tiered pseudotarget has a target thing.

Additionally, clarify dependencies into 3 categories: explicit,
implicit, ordering and remove the per-phase idea on dependencies, it
just adds unneeded complexity for now.