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
Nope, the purpose of this unit test is testing compatibility with loglevel + qunit <= 1.14, nothing more, because we had a bug with that, and it's QUnit is large well used library all over the place that it'd be very awkward to break. There's certainly an argument that we should add standalone noConflict tests elsewhere, but that's a separate problem to this PR.

More generally, I don't see a problem with this as long as the test itself is always using QUnit 1.14.0, which it will now be. We're not testing loglevel + qunit generally, we're testing loglevel + qunit 1.14.0 compatibility, which will not change independently of this, and that's now enforced by the project package.json (and this test will immediately fail if anybody messes with that).