Bare async provider implementation.

Not working due to an issue in code inspection implementation (html
template is displayed before it's rendered).
Merge remote-tracking branch 'origin/fix-5137' into fix-5137-async-linting

Applied experimental version as the base for the development.

Conflicts:
	src/language/CodeInspection.js
Fix @param specification error.
Change documentation and JSDoc.
Put timeout on provider execution.

Use runPromise as the aggregation point instead of doing it in varios
places.
Change to record notation (understood by CC).
Fix typo in the docs.
Resolve with null on timeout. Lint.
Add unit tests.
Merge remote-tracking branch 'upstream/master' into fix-5137-async-linting

Conflicts:
	src/language/CodeInspection.js
Merge remote-tracking branch 'upstream/master' into fix-5137-async-linting
Address code review comments.
Increase timeout to 1000ms and make it a pref.

Adjust the values in the unit tests.
Add test case for race condition.
Address nits and documentation review outcome.
Resolve with an error on timeout/failure.

Add unit tests. Move strings to strings.js.
Merge branch 'master' into fix-5137-async-linting

Conflicts:
	src/nls/root/strings.js
Keep the order of the providers when reporting.

Currently the order is defined by the order of registration.
Check for current promise instead of document.

Keep track of the last promise which inspectFile returns to prevent any
stale promises from updating the UI.
Remove left-over documentation sentence.