Expose code inspection providers for the extensions.

First go at inspectFile method.

Removed Async.withTimeout from inspectFile()

Separated getProvider and inspectFile logic, added usage of DocumentManager.getOpenDocumentForPath to inspectFile

Modified run() to use new methods.

Moved $problemsPanelTable event handlers from run() to htmlReady() for optimization.

Fix the case when getCurrentDocument returns null.

Check if current document hasn't changed while inspectFile was running

remove async handling of provider.scanFile

Refactored according to comments.

Made provider response nullable again, removed the warning.

Refactored getProvider to getProviderForPath and updated docs.

Remove getProvider from exports.
Merge pull request #5125 from zaggino/codeInspectionApi

Expose API to run code inspection as a headless one-off on an arbitrary file