elm logger

moved this from the Logging repo (aspnet/Logging#38), removed the Mvc dependency from the sample, and fixed scoping
It's usually good to put extra parens around complex expressions like this:

```C#
if (!IsEnabled(logLevel) || (state == null && exception == null))
```