Fixes #4747: Move r32081, r32173 to v1.8 branch (Handle error case in mca_spml_yoda_register)

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

r32081 [[BR]]
Handle error case in mca_spml_yoda_register

if source memory could not be registered, then return NULL
some cleanup might be needed, please refer to the FIXME in the code

cmr=v1.8.2:reviewer=miked

r32173 [[BR]]
Handle error case in mca_spml_yoda_register

this commit fixes error propagation in :
 - mca_memheap_base_reg
 - mca_memheap_base_dereg

cmr=v1.8.2:reviewer=amikheev:ticket=4747

r32175 [[BR]]
OSHMEM: fixes error handling in memheap

Memory registration is aborted on first failure.
Already registered memory is freed and
correct error code is returned.

Memory deregistration always suceeeds 

reviewed by miked
cmr=v1.8.2:reviewer=ompi-rm1.8
Fixes #4776: Move r32174 to v1.8 branch (OSHMEM: refactoring of fix wrong)

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

r32174 [[BR]]
OSHMEM: refactoring of fix wrong btl/sm processing
    
Use exising fields of mkey struct to identify 'shared memory'
segments.

mkey.u.key is now always initialized to MAP_SEGMENT_SHM_INVALID instead
of 0

reviewed by Mike and Igor
cmr=v1.8.2:reviewer=ompi-rm1.8