Fix crash in tests/misc-mutex.so

tests/misc-mutex.so would consistently crash while testing the spinlock.
The problem is that after locking the spinlock, preemption remains
disabled. Then, when the test program continues to call spinlock::unlock()
for the first time, we attempt to resolve this symbol which is not allowed
in preemption-disabled time. We can have a similar problem if another
piece of the program text needs to be paged-in while preemption is disabled.

The solution is to use OSV_ELF_MLOCK_OBJECT on this shared-object.
It ensures that all symbols are resolved during load, instead of
when first used (possibly while preemption is disabled), and all the
executable always remains in memory.

Fixes #556

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>