OSHMEM: sshmem verbs: allocate memory at fixed address

Use experimental verbs to allocate memory at fixed base
virtual address.

verbs will disqualify itself if shared_mr is disabled
or not supported and it is impossible to allocate memory
starting at fixed base virtual address.

verbs contig pages allocator did not guarantee fixed va, now it does.
(cherry picked from commit fd77ebd4525e9e0c1a3ab1c4966bf31aa45251b4)

Apply Jeff`s comments

Update with Jeff commits
(cherry picked from commit open-mpi/ompi-release@4dc487fc3d6353022a68717f17a6cda8fa15877d)
Per email thread on devel list:

Revert "OPAL: drop dead with core on bad flow. rarely happens with helloworld on large scale."

This reverts commit 86f1d5af3ee484f34092ad3f7a645d9a5ccbcb6c.

Will be reconsidered via RFC as it represents a significant change in behavior
[pmix server] Simplify usock_peer_recv_blocking, removing pmix server specific
operations.
[pmix server] Introduce a set of routines for pmix_server_peers
incapsulation. Will be intensively used in next commits.
[pmix server] Simplify usock_peer_recv_blocking, removing pmix server specific
operations.
[pmix server] Cleanups to the previous commit. Quick runtime test - OK.
[pmix server] Cleanup connection_handler. Now peer transits directly to
CONNECTED state or get dropped. No intermediate stages are needed.
[pmix server] Cleanup pmix_server_send_connect_ack and
usock_peer_send_blocking.
[pmix server] Remove duplicated and unneeded functions.
[pmix server] Markup pmix_server_connection.c:
1. Highlight functions that should go somewhere else.
2. Remove code duplication from pmix_server_recv_connect_ack
3. Other changes that tries to make code look nicer.
[pmix server] Get rid of excessive send/receive states of pmix peers.
WARNING: Code tested only for correct compilation, not for correct
execution. This is intermediate commit.
[pmix server] Cleanup of pmix_server_sendrecv.c
1. Make output messages slightly more verbosive and have the same format
(need to continue with this).
2. send_bytes/read_bytes now don't modify the peer state. This should be
done in the caller (handler) so there would be no confusion.
3. Reorder functions so the basic ones (send_bytes/read_bytes) goes
first.
WARNING: This commit may be broken. Intermediate changes.
[pmix server] Cleanups in pmix_server_sendrecv.c [no semantic changes]:
1. Cleanup and markup code. Highlight things that need to be isolated
for portability.
2. Small changes in send/read_bytes (fix compilation errors).
3. Cleanup pmix_server_send_handler code: format output, small other
changes.
[pmix server] Completely get rid of peers status.
There is significant amount of changes but they are formatting mostly.
And few deletes of peer->state references.
WARNING: Commit is tested for compilation correctness only.
[pmix server] Move all peer management code to platform-dependent part
of pmix. [Compile OK, Runtime -].
[pmix server] Complete migration of peer management code to "platform"
NOTE: this commit spawns WARRNINGS: "ISO C forbids conversion of
function pointer to object pointer type [-Wpedantic]"
This will be fixed in later commits.
[Compile OK, Runtime -].
[pmix server] Fix bug with using OBJ_DESTRUCT instead of OBJ_RELEASE.
[Compile OK, Runtime OK].
[pmix server] pmix_server cleanups:
1. Move pmix_server_start_listening  since this is connection-related
tool. Remove event manipulation part from there.
2. Fix bugs in peer hash table traversal.
[Compile OK, Runtime -]
[pmix server] Fix output in pmix_server_start_listening.
[pmix server] Move all peer message processing to the
pmix_peer_process.c file.
[Compile - OK, Runtime -]