Some optimizations around various ILog extension methods, Fixes issue 4.

@justinvp Could you kindly cast your eye on this? I've also added some missing extensions also. Cheers!
Unrelated to these changes, but it should throw `ArgumentNullException`

```c#
throw new ArgumentNullException("logger");
```