Refactoring ILogger, see aspnet/Logging#3

Odd. Is this needed for the tests to pass? (Tests written based on the old design). Should the tests change instead?