Refactor common log

I've refactored the common log component by 
- Removing the DefaultCommonLogger, instead just make the default logger stdout if one is not supplied
- adding tests
- capturing data before sending through to ServeHttp
- removing flags

@maz I'm trying to understand what you're trying to achieve with the flags. I'm not completely opposed to them, I would just think that there would be better ways to achieve the same thing?

Instead of  `UseXForwardedAddress`, would it be better to have a decorator handler which wrote the correct address to RemoteAddr ?

For `StripURLQuery`, I'm not sure I understand this either. Can you provide an example (or even better create a testcase)?

Or perhaps better way to handle different potential variables could be to make this more general purpose  (not just Common Log) and allow you to specify a custom logging format? What do you think @maz ?