Add NET_TIMING_TEST option for paper_net_thread

This is a compile-time options.  Use "make CFLAGS=-DNET_TIMING_TEST" to
enable the networked timing test.  This basically runs paper_net_thread
as usual, but exits after 10 million packets.
Set O_NONBLOCK on paper_net_thread's socket
Change semtimedop to non-blocking semop

This changes guppi_databuf_wait_free and guppp_databuf_wait_filled to
use non-blocking semaphore operations.  Using non-blocking semmaphores
changes the semantics of the return value slightly.

null_output_thread.c and all paper*thread.c uses of these functions have
also been modified to use the new return value semantics.

All programs linking with guppi_databuf.o now need to include
guppi_thread_main.h (for global definition of "run_threads").
Make guppi_status_lock non-blocking
Do not exit on "impossible" condition

paper_net_thread had a call to exit() when it detected an "impossible"
condition.  This still prints a mesaage when detecting this "impossible"
condition, but it doesn't exit.  This essentialy treats it as a warning
now instead of a fatal error.
Americanized the spelling of initialization
ifdef out error/warning check in paper_net_thread
Placed several counters in the status shared memory.
Change default values for paper_ctl.sh

These default values have been changed to start integrating farther into
the future (so that the start mcnt will not be missed) and to integrate
for ~10.7 seconds.
Use all 48 bits of mcnt from packet header

The code used to use guppi_udp_packet_mcnt() to get the mcnt from the
packet, but this masked off the upper 16 bits of mcnt leaving only 32
bits.  The code now extracts all 48 bits directly rather than calling
the incompatible guppi_udp_packet_mcnt() function.
Change the scaling of mcnt sent to the catcher

The mcnt scaling factor of the ROACH F engine is different from that of
the old iBob F engine which is different from that of the old ROACH X
engine.  The mcnt sent to the catcher is now scaled to remain compatible
with scaling factor output by the old X engine.  This allows the same
catcher software to be used with both FPGA and GPU X engines.
Add GPUDUMPS field to status buffer
Fix calculation of integration's last_mcount

Also print warning message if start_mcount or last_mcount is missed.
Add GPU_NS field to status buffer
Change GPU buffer handling for updated xGPU API

xGPU now supports registering one large input buffer and one large
output buffer and correlating/dumping from/to locations within those
buffers by passing offsets to xgpuCudaXengine().  This greatly improves
performance.
Add compile time option for databuf debug messages

Defining DEBUG_SEMS when compiling will output semaphore debug messages
on stderr.  The message output include a small sed script that change
thread id into a thread name.
Merge remote branch 'origin/jeffc' into busy-wait
Convert databuf waits from while loops to ifs

Now that waiting for databufs uses busy waits, looping on the wait calls
is no longer useful.
Add support for multiple instances per user

Support was added to allow multiple users to run pipelines
simultaneously without any shared memory or semaphore conflicts, but
running multiple instances under a single user account was difficult as
it required careful setting of several environment variables.

Now the framework supports the concept of an "instance_id" that allows a
single user to run up to 64 separate pipeline instances.  The
instance_id can range from 0 to 63, inclusive.
Always add INSTANCE record to guppi status buffer

Also add instance_id field to struct guppi_status.