Fixes #4441: Move r31197, r31223 to v1.8 branch (osc/rdma: quiet warning in r31197)

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

r31197 [[BR]]
osc/rdma: add support for datatypes with large descriptions

This commit adds large datatype description support to the osc/rdma
component. Support is provided by an additional send/recv of the datatype
description if the description does not fit in an eager buffer. The
code is designed to require minimal new code and not for speed. We
consider this code path to be a slow path.

Refs #1905

cmr=v1.8:reviewer=jsquyres

r31223 [[BR]]
osc/rdma: quiet warning in r31197

cmr=v1.8:ticket=#4441
Fixes #4448: Move r31203 to v1.8 branch (osc/rdma: fix bug in the)

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

r31203 [[BR]]
osc/rdma: fix bug in the active message code that could cause erroneous
results

The code to handle completion messages did not correctly increment the
number of expected messages. This could cause wait to return before all
incoming messages are complete.

I also added a check to ensure that start returns an error if we are in
a passive access epoch.

cmr=v1.8:reviewer=jsquyres
Fixes #4451: Move r31224 to v1.8 branch (osc/rdma: fix possible error when)

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

r31224 [[BR]]
osc/rdma: fix possible error when encountering accumulate lock contention

It is possible to get into a situation where a small accumulate operation
can not be completed because a large accumulate operation holds the lock.
In this case we may return from wait/flush/etc before the operation is
complete. To handle this case increment the expected incoming fragment
count when queuing an accumulate operation and increment the incoming
fragment count after processing the accumulate operation.

cmr=v1.8:reviewer=jsquyres
Fixes #4453: Move r31226 to v1.8 branch (osc/rdma: fix bugs in lock_all)

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

r31226 [[BR]]
osc/rdma: fix bugs in lock_all and flush_all

This commit fixes two bugs:

 - We were not correctly setting the lock type in the outstanding lock
   for lock_all. This caused undefined behavior.

 - flush_all was incorrectly checking for comm size - 1 lock acks but
   comm size flush acks. This is the reverse of what was intended.

cmr=v1.8:reviewer=jsquyres
Fixes #4454: Move r31227 to v1.8 branch (osc/sm: fix bugs in window)

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

r31227 [[BR]]
osc/sm: fix bugs in window initialization and finalization

Fixed two bugs:

 - Use module->comm NOT comm to get the CID for the shared memory backing
   file. This fixes the case where there are multiple shared memory windows
   at the same time.

 - Remember to unlink the shared memory backing file.

Refs #4438

cmr=v1.8:reviewer=jsquyres
Fixes #4456: Move r31232 to v1.8 branch (btl/vader: actually set the correct)

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

r31232 [[BR]]
btl/vader: actually set the correct send size in all cases

Fix a one line bug when dealing with non-contiguous sends in prepare_src. Bug was
identified by the intel test suite.

cmr=v1.8:reviewer=jsquyres
Fixes #4457: Move r31233 to v1.8 branch (Update LANL platform files to)

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

r31233 [[BR]]
Update LANL platform files to always use vader over sm.

cmr=v1.8:reviewer=ompi-gk1.8
Fixes #4455: Move r31230 to v1.8 branch (btl/vader: unlink the shared memory)

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

r31230 [[BR]]
btl/vader: unlink the shared memory segment when finished

cmr=v1.8:reviewer=jsquyres
Fixes #4449: Move r31204, 31221, 31222, r31231 to v1.8 branch (osc/base: adjust the logic in)

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

r31204 [[BR]]
osc: fix datatype related issues in the one-sided code

This commit fixes two issues:

 - osc/rdma: The target side of an accumulate was using the target datatype
   in the receive to the packed buffer. This was conflicting with the way
   the reduction is done into the target buffer. Changed the receive to use
   the primitive datatype.

 - osc/base: The copy table was completely wrong. Fixed the table to match
   the underlying datatypes (which are opal not ompi datatypes).

 - osc/base: There is a problem using the optimized description. Fall back
   on using the non-optimized description until we can understand what is
   going wrong.

cmr=v1.8:reviewer=jsquyres

r31221 [[BR]]
osc/rdma: fix warnings introduced by r31204

cmr=v1.8:ticket=#4449

r31222 [[BR]]
osc/base: add support for datatypes that are a contiguous combination
of the primitive datatype

In this case we can not use the convertor to run the accumulate operation
since the datatype is a more or less a primitive type.

cmr=v1.8:ticket=#4449

r31231 [[BR]]
osc/base: adjust the logic in ompi_osc_base_sndrcv_op to adjust for
the case fix in ompi_osc_base_process_op in r31204.

There are two cases that needed to be handled:

 - The target is a simple datatype (contiguous block of a primitive
   type) but the origin is not. In this case we still need to pack
   the origin data but we can not rely on the convertor to do the
   unpack (see r31204).

 - Both the origin and target datatypes are simple datatypes. In this
   case we can use ompi_op_reduce to do the accumulation without having
   to pack the origin data.

cmr=v1.8:ticket=#4449