IDEA-104500 Gradle: Allow to reuse common logic for other external systems

Green code policy is applied
additional logging for EA-46101 - IOE: TagNameReference.bindToElement
EA-39402 - assert: NullableStuffInspection$.buildVisitor
extract quickfix provider out of URLReference
delete some unused methods
extract reference from XmlAttributeImpl to top-level class, move attribute completion to XmlCompletionContributor
move to core-api
depend on interface instead of implementation class
since we don't have any attribute descriptors that implement QuickFixProvider, we no longer need to query them in the reference
reference CompletionUtilCore instead of CompletionInitializationContext
extract completion provider to top-level class
possibility to suppress usage of XML tag insert handler via XmlExtension
separate attribute completion into a separate completion contributor in order to let other plugins hook in before it
use PsiNavigationSupport instead of EditSourceUtil and OpenFileDescriptor
move SymbolPresentationUtil to projectModel-impl; allow some more dependencies for xml-psi-impl
move AdditionalIndexedRootsScope + dependencies to indexing-impl
move RenameableFakePsiElement to core; change FakePsiElement to inherit from the other PsiElementBase
some more pattern stuff moved to core-api
some more pattern stuff moved to core-api
some more pattern stuff moved to core-api