The idea of this is to let a client of bzrlib set some policy about how output is displayed.
In this revision all that's done is that progress bars are constructed by a policy established by the application rather than being randomly constructed in the library or passed down the calls. This avoids progress bars popping up while running the test suite and cleans up some code.