Rename opal_atomic_lifo_t to opal_lifo_t and improve interface

 - Rename opal_atomic_lifo_t to opal_lifo_t to reflect both atomic and
   non-atomic usage. Added new routines (opal_lifo_*_st) for non-atomic
   usage as well as routines conditioned off opal_using_threads(). The
   atomic versions are always thread safe and the non-atomic are always
   not thread safe.

 - Add a new atomic lifo implementation that makes use of 128-bit
   compare-and-swap. The new implementation should scale better with
   larger numbers of threads.

 - Add threading unit test for opal_lifo_t.
Add opal_fifo_t class

This commit adds a new class: opal_fifo.h. The new class has atomic, non-atomic,
and opal_using_threads() conditoned routines. It should be used when first-in
first-out is required and should perform much better than using locks and an
opal_list_t. Like with opal_lifo_t there are two versions of the atomic
implementation: 128-bit compare-and-swap, and spin-locked. More implementations
can be added later (LL/SC comes to mind).

This commit also adds a unit test for the opal_fifo_t class. This test verifies
the fifo implementation when using multiple threads.
Add lifo and fifo checks to make check
fix build for cray xc

Recent addition of libfabric embdded broke build on Cray XC/XE.
This commit fixes this problem.
Per contribution from Pascal Deveze of Bull: move opal_set_using_threads earlier in MPI_Init (before datatype init) so the value gets set in time to be properly used.
Function definition should use the correct type
Add the processor architecture to the topology signature
Restore full topology comparison to support inventory monitoring
libfabric: fix some typos in the usnic configury
libfabric: update embedded libfabric to 934a714

Update the embedded copy of libfabric to the github ofiwg/libfabric
repo hash 934a714ca85f1a30a1e384a7d5f714ee962dc253.
libfabric: Open MPI addition to stem a flood of warnings

Add a pragma to not warn about zero-length arrays.  This needs to be
addressed upstream, but for now, do it here.
usnic: update for libfabric API change

Use FI_ADDR_UNSPEC for posting a receive from an unspecified source.
Merge pull request #310 from yburette/master

libfabric: add optional PSM provider.
libfabric: fix providers to conditionally add libs/flags

Only allow the usnic and PSM providers to add CPPFLAGS and LIBADD
flags when they are going to be built.
Merge pull request #300 from hjelmn/topic/atomic_lifo_fifo

Add opal_fifo_t class and rename opal_atomic_lifo_t to opal_lifo_t
usnic: short term fix to enable builds on non-libfabric platforms

This isn't quite the Right fix yet, because it doesn't address usnic
for external libfabric builds.  I'll fix that separately / later.
opal_progress: fix sched_yield check
libfabric: use correct C99 notation for var-length array

Nathan pointed out the correct C99 way to notate a variable-length
array in a struct.  This change has now been accepted upstream in
libfabric.
libfabric: Gah -- also remove the "pragma pop" line

Thanks to Nathan for pointing out that I missed snipping one line in
2f9c69f016751954bc8384927ce7878d9882b56c (I removed the trailing
comment, but not the trailing pragma -- oops!).
Silence warnings