osc/base: defensive programming. handle one more possible datatype case

It might be possible (don't know) for a datatype to made of a contiguous block
of a primitive datatype and have an lb. If this is ever the case the code
would have done the wrong thing. Add the lb in to be safe.

cmr=v1.8:reviewer=jsquyres
osc/rdma: really fix active message support

The last fix prevented a hang but had some cases where the results were
wrong. Fixed. Tested with armci, openmpi/ibm, openmpi/onesided.

cmr=v1.8:reviewer=jsquyres
coll/ml: fix some warnings identified by clang

cmr=v1.8.1:reviewer=manjugv