Liblktlang: add handling of multiple modules in `import ...` clauses, and support for the revamped module system
Closes#981
See merge request eng/libadalang/langkit!1508
Move/rename `LangkitRoot.fetch_prelude` to `LktNode.prelude_unit` so
that this property is easily available from all nodes and so that its
name is more "getter-like".
Also introduce the `LktNode.is_from_prelude` to simplify the codebase.
Upcoming work to correctly analyze Lkt modules will introduce one env
for each Lkt module (i.e. for each analysis unit root node): look for
prelude declarations in the root scope directly, and insert "magic"
types (the root node, Metadata) to it.
`LangkitRoot` nodes now define modules, so they must be treated as
declarations for these modules. This is necessary for the semantic
analysis to allow named references to Lkt modules.
Currently, the order of items returned by `LktNode.p_complete` is not
significant and depends deeply on implementation details. Sort its
result so that baselines are more resilient to changes in the
implementation of completion.
For interactive uses, the `gnu-full` style is much less convenient than
the default format (colors, true column number, quoted source with
caret, ...).