This patch add a new API impliesPoisonIgnoreFlagsOrMetadatas which is
the same as impliesPoison but ignoring poison generating flags or
metadatas in the process of implying poison and recording these ignored
instructions.
In InstCombineSelect, replacing impliesPoison with
impliesPoisonIgnoreFlagsOrMetadatas to allow more patterns like
select i1 %a, i1 %b, i1 false to be optimized to and/or instructions
by droping the poison generating flags or metadatas.
metadatas -> metadata