add three semaphore implementations and make wakeupSem configurable

To further investigate #12 I added a futex based implementation and changed Runtime.wakeupSem to emper::lib::sync::Semaphore.

The default semaphore implementation uses a POSIX semaphore and should be equivalent to the current master.

Merge request reports

Loading