This patch attempts to add a target-overridable hook for allowing module metadata
to override TargetMachine options, especially during LTO.
The new hook is called TargetMachine::resetTargetDefaultOptions and takes the
llvm::Module so that the module metadata can be read with the API provided
by llvm::Module.
It is not clear that this patch handles LTO correctly at the moment.
This patch relates to D72245 and D72246 and the discussion in
http://lists.llvm.org/pipermail/llvm-dev/2020-January/138151.html