Add file that didnt get included in prior CMR
Fixes #3874: Move r29563 to v1.7 branch (ompi/mca/btl/openib: Fix memory leak and)

---svn-pre-commit-ignore-below---

r29563 [[BR]]
ompi/mca/btl/openib: Fix memory leak and accessing free'd memory issues
Let imagine that we have two btls in btl_openib_component_init() both points to the same openib_btl->device and as a result have the same openib_btl->device->endpoints array.

Finalization phase calls twice mca_btl_openib_finalize()->mca_btl_openib_finalize_resources().
mca_btl_openib_finalize_resources() frees endpoint related btl. But the second call of mca_btl_openib_finalize_resources() checks endpoint that is released by previus call.

fixed by Igor, reviewed by miked/vasily
cmr=v1.7.4:reviewer=ompi-gk1.7
Fixes #3867: Move CUDA-aware cleanup and initialization features to 1.7

---svn-pre-commit-ignore-below---

r29347 [[BR]]
Move registration function inside initial initialization function.

r29364 [[BR]]
Enable some CUDA-aware support on tcp btl.  Only when configured in.

r29422 [[BR]]
Move another function that was missed in r29347.  

r29443 [[BR]]
Fix one more corner case initialization issue.
Fixes #1559: Move trunk r29542, and r29566 to 1.7 (Fix reduce_scatter algorithms to handle recvcounts of 0)

---svn-pre-commit-ignore-below---

r29542 [[BR]]
Fix the recursive halfing algorithms for reduce scatter in both basic
and tuned to correctly handle 0 recvcounts.

Tested with the reproducer from #1550.

Refs #1559

r29566 [[BR]]
Remove outdated comments in coll_basic_reduce_scatter.c.

Refs #1559