ose: Remove all usage of pthreads and spinlocks

A number of intricate non-documented dependencies have led to this change.

Before:
  Used pthread as mutex
  Used own impl as rw mutex
  Used native asm as spinlock
  Used pthread as MTX_Q
  Used OSE processes as threads
  Used OSE wait_fsem for the tse

After:
  Use own impl as mutex
  Use own impl as rw mutex
  Use OSE mutex as spinlock
  Use OSE mutex as MTX_Q
  Use OSE processes as threads
  Use OSE wait_fsen for the tse

All pthread api calls have been removed because we should not use the
pthread api's in a non-pthread process. We do not want to move to using
pthread threads because of performance reasons.

Ideally we would want to use OSE mutex as the mutex implementation, but we
cannot as there is not support for cond wait with OSE mutex. So we are
forced to use a non-kernel mutex which could be bad for the latency.

We can however use OSE mutex for the MTX_Q because we do need cond wait
there.

We never want to do infinite spinning outside the kernel, so both the
spinlock and rw spinlock implementation for OSE has been replaced with
mutexes.
ose: Always yield after leader update

It is possible to end up in a state where we are "spinning"
around update leader without blocking in there and then we
can starve other schedulers running on the same core.

Ideally we would only yield if there was no block in update leader
but it is quite hard to know that, so we always yield instead. If
that becomes a performance issue we'll have to look at it later.
ose: Fix a bunch of compiler warnings
ose: Implement ose_yield as inlineable
ose: Use ppdata for storing own tid
ose: Fix handle-name bug in spawndriver when spawning with slash in arguments
ose: Fix usage of unitialized variable in signal driver
ose: Add a proxy process to handle the schedulers async i/o
ose: Set processes to same priority across the beam block
     add notification if process priority differ per core.
ose: Fix inlining of ethread
erts: Add comment about software prefetching
ose: We only execute run as priority procs
erts: Cache line align safe_hash mutex
ose: Fix gcc dependency generation
ose: Implement routing table for signal driver

The routing tables are used to route certain signals directly to
the target process. This is an optimization as the same thing could
be done in Erlang, but unfortunately it was not fast enough so an
implementation was done in C.
erts: Add cross compile option for ppc lwsync
erts: Add os:cpu_timestamp/0 for ose
ose: Port erl_mmap to OSE using create region