Create factory implementation for printers

This pull request centralizes creation of printers instances into a single point removing duplication from `PHPUnit_TextUI_Command` and `PHPUnit_TextUI_TestRunner`.
Now `PHPUnit_TextUI_Command` has nothing to do with printers, it only populates the arguments used by `PHPUnit_TextUI_TestRunner`.

This pays the technical debts of #1537.
@whatthejeff, this is what I was talking about in #1551.

I can restore this method and still use the Factory or just close the pull request if you prefer.
Actually this pull request is just me trying to create more tests for PHPUnit in itself and make more testable codes for it.