Fix multiple linters on the same file for real

Fixes #139, #172.

This reverts changes made in #167 and fixes the issue in a more correct way.
linter. This means subsequent calls to `processMessage` by the same linter
would try to `unlink` the file. This only appeared now because we used to
increment `completedLinters` well past `@linters.length`,  and unlinking would
only happen when `completedLinters == @linters.length`. Oops.

Anyway, it turns out that we weren't listening for the end of the output from
the linter file. `BufferedProcess` calls `stdout` multiple times by design
(which is quite obvious now that I've noticed it). It calls the `exit` callback
to let us know there is no more data. So this commit sets us up to buffer up
all output from a linter then call `processMessage` only once.

Test Plan:
I was hitting #172 with `coffeelint` while coding this. To test, I made a lint
error and noticed that I didn't get an error in the console any more.

I also opened some Python files and made lint errors there to make sure that
still worked.
Use utils.log and utils.warn everywhere

Test Plan:
Crossed fingers