Updated code block UI and unit tests to use CodeCompletionServices

In this PR, I have updated the `CodeBlockEditor` UI class to use the new `CodeCompletionServices` APIs for code completion as well as rewritten unit tests to use `CodeCompletionServices` independent of the UI.

@Benglin PTAL.
I've left the `TODO` comments in but added YT tasks against them to implement these properties. As of now I don't think the suppliers of the completion data, namely, `CompletionServices` should be responsible for sorting or prioritizing data as per recently accessed/used criteria. It should be the responsibility of the UI, don't you think? We can discuss this.