Create a printer interface for printing

This is necessary so that we can fake it out for tests
Inject the printer
Write a real test.

Man that was hard.  Probably my technique of faking
isn't the best idea in this environment.