Pull over Jeff's original patch. Update it per George's comments: since opal_using_threads is always false if thread-multiple hasn't been enabled, there is no reason to include checks for it in that condition. So restore the #if statements in opal/threads/mutex.h to regain the remaining missing performance. Also, restore the thread debugging code as there is no reason to exclude it as it only builds in debug environments
btl/tcp: fix hang when using multiple threads

There was a hang in the tcp btl that caused a hold-and-wait scenario
when processing libevent events. The problem was due to one event holding
the event lock while waiting for the endpoint lock while another thread
was holding the endpoint lock while waiting for the event lock. The fix
is simple: drop the endpoint lock before trying to delete a libevent
event. The fix was tested with osu_latency_mt.
Correct the loopback detection logic. Provided by Gilles, reviewed by rhc, RM-approved
Remove oshmem java links as the oshmem java bindings are not in the 1.8 series
Two cleanups required for transfer to 1.8.4:

* Use %d format for the topo signature as some systems apparently have problems with %u
* Use correct variable in show_help message
It looks like the guess_len function in our local printf.c has some questionable code in it. Now that we are checking in configure for vsnprintf, take advantage of that check to use the far simpler method if it is available. Given that we no longer support such ancient systems where this might not be available, one suspects the other questionable code may no longer be required - but set that aside for another day.

(cherry picked from commit c52601f0c563132284cd1444c7a7039ba0032872)
Revert the timeout code in the oob connection logic as it is causing problems and clearly needs more work.
Merge pull request #119 from rhc54/cmr/fix-oob

Revert the timeout code in the oob connection logic as it is causing problems
Merge pull request #117 from rhc54/cmr/remove-java-shmem

Remove oshmem java links as the oshmem java bindings are not in the 1.8 series
opal: minor update to guess_strlen

This is a minor update to
open-mpi/ompi@c52601f0c563132284cd1444c7a7039ba0032872.

If we have vsnprintf(), we might as well not have the rest of the
guess_strlen() routine.  Also document the nifty trick/behavior of
vsnprintf() that enables this shortcut (it was new to me!).

Conflicts:
	opal/util/printf.c
Correctly propagate the requested level of thread support during the
component init calls.

Conflicts:
	ompi/runtime/ompi_mpi_init.c
Pull across open-mpi/ompi@343071498965a8f73d5f2b0c27a7ef404caf286c
Merge branch 'cmr/thread-multiple' of https://github.com/rhc54/ompi-release into cmr/fix-thread-multiple

Conflicts:
	opal/runtime/opal_progress.c
Merge pull request #118 from rhc54/cmr/cleanups

Some cleanups required for transfer to 1.8.4:
Merge pull request #120 from rhc54/cmr/fix-thread-multiple

This will be the official pull request to fix thread-multiple on 1.8.4
Fix incomplete commit for automatic heter-node detection and add some debug