squash! FIX build case + provide repo replace interface

I got a little carried away working on this test today, decided to basically re-write most of the test since it was not very modular at all.  The bad news is, I ran out of time working on the postprocessing stuff.

What I did was to define a fixed structure for holding the build information, instead of a loose dictionary that wasn't well represented.  Then I consolidated all the config. options to fit the structure, and stuck it in place for ``initialize()`` and ``run_once()``.  Now it's all nice, clean, and well defined what each thing is.  Though untested (they're may be typos).

Finally, I worked my way down and re-wrote the postprocessing methods to be much more general.  I left off at ``postprocess_created_containers()``.  I think ``postprocess_output()`` can probably just be deleted, since those checks were consolidated into ``postprocess_positive()`` and ``postprocess_negative()``.  My thinking was, make the base-class ``postprocess()`` method abstract (or just remove it), then override it and ``cleanup()`` inside each different sub-subtest class.  That way they have exact control over which checks are performed and how they treat the meaning of ``positive_build_regex`` or ``positive_build_regex``.

Anyway, take it for what it is.  If you want to continue, take some of these ideas, or just forget my work and try and fix the existing test, either way is fine.  I probably should have looked closer at this test before saying 'okay' to fix it, I'm sorry I didn't realize how much of a mess it was :confounded:  (so, totally not your fault).  In any case, however you go forward is fine.  I see this test along with many others are in need of some cleaning up, so learn and have fun.  I'll be back in a few weeks, cheers!