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
Got it: this test fails with the newest QUnit (1.15.0), as of https://github.com/jquery/qunit/commit/edbe3a4dfb1dff4c2fb3a58c217c55809868294a because they've removed the log global.

Unfortunately, our package.json specifies "^1.13.0" and this breaking change was only a minor version bump, so once 1.15.0 was out (6 days ago) the tests magically got broken. Nice!

I've now fixed our package.json, so if you rebase and `npm install` it'll downgrade to 1.14.0, and this should happily pass. Can you check that, and then back this commit out? Shouldn't be necessary at all anymore.