Provider-formatted code hinting

Allow code hint providers to give hints as jQuery objects instead of as strings. This allows providers to perform arbitrary query matching and highlighting (as opposed to the substring matching and highlighting performed by the CodeHintList by default), and also more elaborate hint formatting. This implements the formatting part of the [new code hinting API](https://github.com/adobe/brackets/wiki/New-Code-Hinting-API-Proposal).

This also improves and corrects the in-line documentation for the CodeHintList and does some refactoring for clarity and simplicity.