This should help avoid "empty cat" output we saw recently when something failed to fetch but was otherwise valid.
The current implementation is trying to do two things with one output:
1. normalized `bashbrew cat` diff
2. visualize `--build-order` changes
This change splits those into two separate things because combining them ends up making the diff harder to read than it should be ("changed tags + changed commit" leading to a full reordering of the diff because build-order also changed).