Allow phases to give restrictions on pipeline position.

Phases can now specify which phases should it precede and follow.
Tree transforms can additionally specify which TreeTransforms
should have finished their processing of compilation units entirely.