Adjustment for scoping

The code was wrapped in two anonymous functions, which could cause `this` to be undefined depending on how the loglevel code was included in a project. 

Only using one anonymous function and having this be at the "top-level" allows the code to be wrapped and invoked with apply like so:

```javascript
var myScope = {}:
(function(){
 // loglevel.js source
 // "this" will equal myScope, since the "this" in loglevel.js is in this scope.
}).apply(myScope);
myScope.log.debug("log was defined on myScope");
```

The code change follows the same pattern as this:
https://github.com/marionettejs/backbone.marionette/blob/master/src/build/marionette.core.js

I'd love to write a unit test but I'd have to adjust the `Gruntfile.js` and include grunt-preprocess or grunt-rigger, which are code injection/include tools, to generate a test that includes the `loglevel.js` wrapped in a function invoked with apply. If you want me to do this I will. 

I also hope that my change doesn't affect anything that the `undefined` argument was doing.
https://github.com/pimterry/loglevel/blob/master/lib/loglevel.js#L8

Thanks,
Gianni
Yeah that should have been a major bump if it changes the api. 

Ok, I'll back out that change.