OSHMEM: extract memheap allocate methods into separate framework

- similar to opal/shmem
- next step is some refactoring and merge into opal/shmem
 Developed by Igor, reviewed by AlexM, MikeD

This commit fixes #4261.