Encapsulate all output into Machinery::Ui.puts and Machinery::Ui.warn

Before some output was done using the Machinery::Ui class (paged output,
some warnings) and other output was done using the STDOUT.puts and
STDERR.puts methods. This commit now streamlines all machinery output so
that everything is routed through Machinery::UI. That makes everything
clearer and has the additional benefit that the machinery output can be
easily stubbed in the tests without affecting non-machinery output.