FileIndex now provides explicit interfaces for preamble and main file updates.
This avoids growing parameter list when preamble and main symbols diverge
further (e.g. D52078). This also gets rid of the hack in indexAST that
inferred main file index based on TopLevelDecls.
Also separate indexMainDecls from indexAST.