[LS]Improve and rework Acceleo 4 completion API and implementation.

* Improve Acceleo Completor API to include additional details which are
leveraged by the LSP.
* Reworked the architecture of the implementation to include both
syntactically valid completion proposals and code template completion
proposals.
* Improve the proposals in various places, including valid AQL
expressions.
* Make sure the order provided by the Acceleo API is the order used by
the Language Server.

Known issues:
* Does not yet fully support proposals from imported modules/classes.
* Support for lists of parameters (in query/template headers) or of
bindings (in let/for statements) is poor.

Change-Id: Iaa05f72d3e5c757fe441270eb9caaa4d807b0240
Signed-off-by: Florent Latombe <florent.latombe@obeo.fr>
112 files changed