Better logging

Currently I don't think the way we use logging is optimal. It feels like we are using `info` as `debug`, and `warn` as `info`, and we have a quiet mode which shows only warning, so it's skip essential things like the Welcome message (or we must make it a warning.)

So in this PR I did the following:

- changed all the `info` messages to `debug`
- changed `warn` which were not really warnings to `info`.
- make 'info' the default log level. This should be pretty quiet, so long term we should remove --quiet. 
- added --log-level startup argument.

 Note: This is the beginning of a process, the same changes will need to be propagated to sub-packages, and we probably want to move some messages to `info` when it makes sense.