This commit achieves the following:
- Functions used to return a TypeSystem * return an llvm::Expected<TypeSystem *> now. This means that the result of a call is always checked, forcing clients to move more carefully.
- TypeSystemMap::GetTypeSystemForLanguage will either return an Error or a non-null pointer to a TypeSystem.