Inject makeables with the production default
Explicitly pass makeables to production code, rewrite tests.

Rewrite the tests to be context-independent; these no longer depend upon knowing the name of the injected behaviors and services.
Parsing command line arguments now takes a block to handle errors.
Refactor tests to remove duplication.

It's possible these went one step too far in removing duplication.  Alas!