This PR allows plugins to replace the implementation of
`CompletionEngine` used in `Openable`.
This covers most completion cases.
In order to accomplish this, this PR introduces the extension point
`completionEngineProvider`,
which allows plugins to specify an implementation of
`ICompletionEngineProvider`.
`ICompletionEngineProvider`
consists of a method with the same parameters to the `CompletionEngine` constructor
that returns an `ICompletionEngine`.
`ICompletionEngine` consists of one method that is identical to
the existing method
`CompletionEngine.complete(ICompilationUnit sourceUnit, int completionPosition, int pos, ITypeRoot root)`.
Signed-off-by: David Thompson <davthomp@redhat.com>