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