Update code throughout linterReporter for better style and performance.

Mostly fixes from previous PRs of mine. Some (seemingly) better comments and ways of doing things.

@MiguelCastillo: I'll add comments on the lines where I want to better document why the change was done. (**Edit**: Finished adding comments).
I debugged your code to see why you are not seeing requests getting queued properly and it is because you are not calling setTimeout quite correctly here.  You need to wrap cm.operation in a function so that the wrapper function gets called  and then that calls cm.operation.

``` javascript
setTimeout(function() {
 cm.operation(function() {

 });
},0);
```

To test the queue, simply set the timeout to 3 seconds or something.