This relands #165277 by reverting #169397. This also relands the corresponding Bazel port by reverting #169410. The original revert was due to a report of a broken build, which was later resolved by fully clearing the build directory.
Move InitAll*** implementation into static library
ASTUnit::LoadFromASTFile()
CompilerInstance::create{File,Source}Manager()
CompilerInstanceWithContext