Show revamp

Complete rewrite of 'meteor show', with tests. See commit messages for more details.

This is part of the work on the Meteor tool to get longform package descriptions from README.md files into 'meteor show'. It is safe-contained enough, that it makes sense to submit it for review.

(I won't merge to devel until all the README work is complete -- note that this is being pulled to a staging branch).
This is only necessary if you actually make modifications to the project constraints file object (ie, `.meteor/packages`, which isn't happening here.  (In the one case where it is used, there are some `projectContext.projectConstraintsFile.addConstraints` calls; the point of the flag is to ensure that they don't get written.)

(Also you never move the ProjectContext to the saveChangedMetadata stage anyway, but that's less relevant.)