Fixes #4073: Move r30179 to v1.7 branch (do a better job of reporting bindings)

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

r30179 [[BR]]
Do a better job of reporting bindings - if someone gives a spec that binds us to all processors, then we are effectively unbound and should report it clearly instead of outputting a long line of B's.

cmr=v1.7.4:reviewer=jsquyres:subject=Do a better job of reporting bindings


r30204 [[BR]]
Protect against orte_proc_applied_binding being NULL.

It is now possible for orte_proc_applied_binding to be NULL (e.g., if
you mpirun --bind-to none), so we need to ensure we don't pass it down
to opal_hwloc_base_cset2*str().

Also, take the opprotunity to de-duplicate some strings that are used
in multiple places.

Refs #4073
Fixes #4074: Move r30180 to v1.7 branch (handle the case of nodes that do not report cores)

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

r30180 [[BR]]
Handle the case of nodes that do not report cores, and thus our default binding policy will fail even though binding is supported by defaulting to not binding on those nodes.

Thanks to Paul Hargrove for reporting the problem on NetBSD.

cmr=v1.7.4:reviewer=jsquyres:subject=Handle the case of nodes that do not report cores


r30185 [[BR]]
Oops - add verbose output to inform that cannot default bind due to no cores detected

Refs #4074
Fixes #4077: Move r30186 to v1.7 branch (correctly detect and handle oversubscription for comm_spawn)

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

r30186 [[BR]]
Correctly detect and handle oversubscription for comm_spawn

cmr=v1.7.4:reviewer=jsquyres:subject=Correctly detect and handle oversubscription for comm_spawn



r30200 [[BR]]
One last corner case - when encountering an overload condition (e.g., by comm_spawning more procs than we have cores) and we are using the default binding policy, do *not* bind the new procs to anything as this can cause major problems. Instead, let the spawn succeed since the user didn't specifically ask to be bound, and leave the new procs as unbound.

Refs #4077
Fixes #4078: Move r30197 to v1.7 branch (fix comm_spawn for oversubscribed systems)

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

r30197 [[BR]]
Fix comm_spawn for oversubscribed systems by correctly computing the number of available slots

cmr=v1.7.4:reviewer=jsquyres:subject=Fix comm_spawn for oversubscribed systems
Fixes #4070: Move r30175 to v1.7 branch (Create a comm keyval for)

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

r30175 [[BR]]
Create a comm keyval for hcoll component with delete callback function.
Set comm attribute with keyval.
Wait for pending hcoll module tasks in comm delete callback where PML
still valid on the communicator. safely destroy hcoll context during
hcoll module destructor.

Author: Devendar Bureddy 
reviewed by miked

cmr=v1.7.4:reviewer=ompi-rm1.7