added fifo read/write test program

The current fifo driver does not use mutexes and will
likely suffer from data concurrency issues.
This fifo test program is an attempt to produce these
errors.
fifo that exaggerates race conditions by waiting

Modified the fifo driver so that it waits for multiple
processes to proceed through a section of code.
The result is that the negative consequences of a race
condition are virtually guaranteed.
another attempt at getting concurrent wait working

Getting a function to wait for multiple processes can
be tricky.  This second attempt, while not very short,
makes logical sense.
added (DEBUG > 1) to reduce number of messages

Now DEBUG=1 will produce a reduced set of messages
and DEBUG=1 (DEBUG > 1) will produce all the messages.
Reducing the output message should help focus on
the fifo offset calculations.
made fifo size tiny; should be simpler to test
added fifo full/empty DEBUG messages
synced fifo_rw and fifo_xxx, removed obvious DEBUG

The changes among fifo_rw and fifo_xxx have been
synced up.  And the obvious DEBUG messages have
been removed.

Several utilities have been added for reading and
writing numbers to the fifo (fifor, fifow).