Formatter regression tests prep for merge

This is meant to supersede #1304 and #1292.

* Contains the final form of the cukes, with the failing ones tagged with `@wip`.
* Contains a couple fixes that originated in #1292, but now there are specs for the fixes to demonstrate why the fixes are needed and to prevent future regressions.
* I took a slightly different approach to fixing the "progress formatter wrongly added" issue; see d141fca.  I think my approach is cleaner/simpler.
* This has been rebased against master.
* In #1292 and #1304 there were some commits that I couldn't figure out why they were needed (such as c284ecd5cabeeeeaa7b087153dae8e3378162b0e -- the commit message doesn't explain anything).  I didn't include such commits since I only wanted to include stuff that is clearly needed for a reason I could understand.

Even though this doesn't solve all problems with legacy formatters, it's ready to merge and, IMO, it's sufficient for beta2.  As @JonRowe and I discussed in #1304, we plan to move the legacy formatter support into an external gem and the work can continue there.  What is here is merely a start but contains no complicated hacks.

/cc @JonRowe