Implement optional asynchronous configure function.

Sorry for jumping out of the blue, guys, but I felt like it's OK to take advantage of generic branch name and suggest some additional improvements. :) @ingorichter, @peterflynn please let me know what you think.

Certain linting tools could be configured by an external file or
multiple files, JSHint being the closest example. This commit introduces
an asynchronous `configure(fullPath)` function which can be optionally
implemented by the linting provider in case it has to configure itself
before running for a certain file.

Failed to configure as well as throwing an error is treated as a special
case and is reported through `result.err` which is made visible to the
developer in addition to `console.error`.

Additionally, some irrelevant improvements:

- `_.forEach` is replaced with `Async.doInParallel` when running linters.
- Rendering DOM is moved to `inspectFile.then` handler so it gets the
  results of processing reliably.
- Terminate run measurements properly.
- Consider missing `codeSnippet` when a general error occurs line is
  reported negative.