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.
If possible, please use `private` instead of `protected`. We can always open it up from `private` to `protected` later if we need to.