Fixes #3970: Move r29882 to v1.7 branch (disqualify sm btl for hetero procs)

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

r29882 [[BR]]
Closes #2433. Check for hetero architecture and disqualify sm connections if that is found as the sm btl currently doesn't support hetero operations.

cmr=v1.7.4:reviewer=brbarret:subject=Disqualify sm btl for hetero procs
Fixes #3969: Move r29875 to v1.7 branch (Initialize sm global variables in)

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

r29875 [[BR]]
Initialize sm global variables in mca_btl_sm_component_open(), because they are destructed in mca_btl_sm_component_close(), and init() function might not be called or fail.
For exammple, mca_btl_sm.knem_fd remained 0, and mca_btl_sm_component_close() ended up doing closing fd 0 which belongs to someone else.

fixed by Yossi, reviewed by miked
cmr=v1.7.4:reviewer=ompi-rm1.7
Fixes #3961: Move r29843 to v1.7 branch (Fix the map-by object mapper)

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

r29843 [[BR]]
Fix the map-by object mapper to handle cpus-per-proc by accounting for the request when computing the number of procs to put on each object. This ensures that the binding routine doesn't automatically overload the cores.

cmr=v1.7.4:reviewer=jsquyres
Fixes #3952: Add minor configure fix to v1.7

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

r29801 [[BR]]
Ensure that ompi_fortran_happy is set to 0 when we're not building the
OMPI project.  This is necessary because some of the threading tests
(that are even used in ORTE) use this result.
Fixes #3953: Move CUDA-aware async copy fix to v1.7

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

r29788 [[BR]]
Fix the CUDA-aware case where we are not sending any GPU data.