v1.2: Implement using directives
New concepts have been added to represent both directives specified by
the C# 5.0 grammar: using-alias-directive and using-namespace-directive.
Using directives are now contained in the new abstract concept
NamespaceContainer, which also provides their editor component. This
obsoletes the UsingDirectiveList concept, whose usages have been marked
as deprecated. An empty list of directives is hidden in order to keep
the editor clean, so NamespaceContainer has two intentions for adding
new directives.
The using alias is practically usable as a referenceable type, but is
incorrectly shown in its own completion menu and those of its siblings.
The namespace directive uses the new NamespaceReference to constrain its
completion menu, but is otherwise cosmetic: the rest of the language is
not yet aware of the imported scopes. For example, references are still
created with fully qualified names, though users could now choose to
shorten these afterwards.