[Documentation] Allow link following between providers
Introduces a new method documentationForUrl
to the controller and
IDocumentationProvider
. Similiar to documentationForDeclaration
a provider
either returns a Documentation if it has a corresponding documentation or a null
pointer otherwise (providers that don't have a mapping from URLs to
Documentations like the CMake one always return null). This allows the providers
to instruct the controller to open documentation URLs that the User requested
and are outside their responsibility. Examples for this are links between
different Qt modules when not using the system documentation (each file will
have its own provider) or links from Frameworks documentation to Qt when they
are installed in different directories.