Issue #3: Refactoring ILogger

Moved extension method `IsEnabled` to the `ILogger` interface, renamed `WriteCore` to `Write` and changed the return type to void. This will break other repositories that use the ILogger interface, which I will update once I get feedback on the changes here.
1. Instead of `\r\n` use `Environment.NewLine` so that it'll work right on all OSes
2. Should the newline be added only if there is a `state` *and* `exception`? Otherwise if there's only an exception then there'll be an empty line above it always, no?