Proper logging and implement the --strict option

This branch centralizes logging and removes several ad-hoc things.

Also, it implements the real ``--strict`` option, which turns all the warnings into errors, if you want to be
really really sure your site is building correctly.

It needs reviewing because it's large and touches a ton of stuff, so it has been done ... ahem, mechanically.

For the discussion explaining why this is needed, you can check 

https://github.com/getnikola/nikola/issues/704

This branch pays a large chunk of technical debt.