OSHMEM: fixes bug in shmem_lock

Lock server pe computation was incorrect in cases when:

lock virtual address is signed long. In this case negative pe
value was returned.

In case when lock has different virtual adresses on different pes.
It can happen when memheap or static segment have different base
addresses. Use offset instead of absolute virtual address to
compute server pe

Fixed by @alex-mikheev, reviewed by @miked-mellanox
(cherry picked from commit 067fa05209f0fac59cbf3050fbfea34f8f490ab8)
Merge pull request #6 from miked-mellanox/topic/fix-oshmem-v1.8

fix shmem_lock
RM-approved