This teaches the FunctionAttrs pass to handle operand bundles
conservatively. All calls / invokes with operand bundles are
currently considered to be reading from and writing to the entire
heap.
I've also added a test case PruneEH to show that a call with operand
bundles inherits its callee's behavior with respect to unwinding -- if
the callee is nounwind, the call is nounwind too.
Depends on D12457.
This appears to be a NFCI refactoring. Separate the submit without further review.