elm logger

moved this from the Logging repo (aspnet/Logging#38), removed the Mvc dependency from the sample, and fixed scoping
I think both `Guid` and `LogLevel` are structs and so cannot be null. (Hopefully when we eventually implement the NotNull stuff it'll throw under such usage.)