Implement LibraryDependenciesCache
Provide heuristic dependencies for LibraryInfo

This is not and cannot be (with current IDEA model) accurate
For now we use the following approximation:
    If a module dependends on library 'a' and among module's dependencies (including this module)
	there is a module that depends on library 'b' then
	we assume that library 'a' depends on library 'b'
Test for LibraryInfo dependencies
Introduce HighlightingWithDependentLibrariesTest

This tests that LibraryInfo dependencies affect source files highlighting
Minor: readable toString for LibraryInfo and LibrarySourceInfo
Do not reuse other caches when analyzing synthetic files inside libraries classes

This is no longer correct since libraries have dependencies