[UI] Delegate all UI decisions to the client and debug by default.

:warning: WIP :warning: 

Sister commit: https://github.com/CocoaPods/CocoaPods/commit/5e73f29c3cfe9d099f89301a0b4aeddc8f6955ba.

The idea here is to let all decisions up to the client. This way:
* Clients might choose to show the full resolution messages.
* Clients might choose to only print dots in certain situations.
* Clients can colour/highlight certain lines for extra impact. (Not done yet in the CP sister branch.)
* Clients might choose to not indent.

The downside is that a few more attributes had to be made public.

@segiddins Let me know what you think.