"kpm restore --quiet" hides HTTP requests/cache information

parent #577 

An interesting usage mentioned by @davidfowl  is `kpm --verbose restore --quiet`. For my implementation, in this case, `--verbose` wins and here is the reason:
If `--quiet` wins, `kpm restore` blocks without showing HTTP requests/cache information. So the user might not notice that he mistakenly specified `--verbose` and `--quiet` together because he might think that `kpm restore` is blocking for some silent operations.
If `--verbose` wins, we show a bunch of HTTP request/cache information instantly after the user hit Enter key. So the user can easily notice he specified `--verbose`. The basic idea is that we make the behavior obvious & quick enough to draw users' attention.

@Eilon , do you like the idea above? Or we can give an error saying `--verbose` and `--quiet` are mutually exclusive.

Ohhhhhh, I see. If it's quite, use the report that verbose would *want* to use, which might just happen to be set or not depending on whether the verbose *option* is set. Makes sense. Very confusing, but makes sense.

So, is there a way to make this somehow less confusing? Like maybe ahead of time determine the actual report to use and then just have a "current report" that is set to whatever it's suppose to be set? Or a helper method that can have more "normal" logic in it to decide whether to write some output or not? This logic seems like it's putting too much decision making logic in each method, as opposed to perhaps encapsulating that somewhere else.