Refactoring ILogger, see aspnet/Logging#3

Well, it's there to test that the logging code checks `IsEnabled` before instantiating any of the data we record. 

I think what's missing here is a negative test - run the scenario with a logger that's not enabled, and verify nothing is logged.