The semaphore test suite checks the following ...

1. Signal a semaphore from an ISR 5 times.
2. Check the semaphore status from the task.
3. Take the semaphore 8 times.  First 5 should succeed; next three should fail.
4. Wait for up to XX ticks for the semaphore.  This should timeout.
5. Wait for up to XX ticks for the semaphore.  Have an ISR give the semaphore.
6. Wait for up to XX ticks for the semaphore.  Have a task give the semaphore.
7. Multiple tasks wait for the semaphore.  Highest priority task gets it.
8. Wait on a group of semaphores--timeout.
9. Wait on a group of semaphores
    - Wake on receipt of each semaphore (test done for each sem in group)
        - Semaphore signalled from ISR
        - Semaphore signalled from task
    - Wake on receipt of many semaphores (test done for various combos)
        - Can only be done from a task
    - task_sem_count_get() performed on semaphores in group before and signalling
10. Give semaphore a number of times, then call task_sem_reset()
11. Give many semaphores a number of times, then call task_sem_group_take()
12. Tests signaling semaphore from a fiber:
    - task waits on a semaphore and fiber signals it
    - fiber signals the semaphore N times, task checks that task_sem_count_get is N
    - task waits on a semaphore group and fiber signals each of them once. Task
      checks which of the semaphores has been signaled
