Add interface to TargetLibraryInfo::setAvailableWithName

This allows overriding which function name on the target correspond to a
given llvm::LibFunc::Func. For example, if your target has an oddly
named malloc function, you could set llvm::LibFunc::Func::malloc to that
function name and take advantage of any malloc-specific optimizations
llvm may have.
Add interface to set PassManagerBuilder::TargetLibrary

This allows using a custom TargetLibraryInfo with a curated PassSetSpec