[swarm] Began refactoring of software by adding a 'swarm' Python package.

This package presently contains 4 modules:

defines: contains global variables for all modules.

core: contains classes for controlling individual SWARM members and for
controlling SWARM as whole.

data: contains classes for listening for visibility data over 10 GbE, for
reordering the data, and for processing that data using user callbacks.
Also, the data handler presently sends data to the SMA dataCatcher and
corrSaver; this however may eventually be turned into a callback.

xeng: abstract classes for "baseline" and an X-engine class that uses a
Swarm instance as its mapping and outputs the output order in words of
the X-engine.

Also present is a script called "swarm_ctrl" that uses the new package and
can be used to setup and handle SWARM data. Note: this script will eventual-
ly take over the functionality of all the scripts in the scripts folder.
[swarm] Corrected order of arguments to SwarmMember.set_scope
[swarm] Added a Swarm command for setting digital noise for the whole system.
[swarm_ctrl] Updated to the newest bitcode *_Mar_29_1331*.
[swarm_ctrl] The log_stats callback now shows more useful statistics.
[swarm/core] Increased default visibs chunk_delay to 2^23.
[swarm/core] Changed external sync pulse from HB to SOWF.

This implies a complete change to the way we do arm syncs. Firstly,
the sync can be done at any time so the DSM sync time is no longer
necessary as is the threaded calls to the sma_walsh sync arming
tbs_plugin. This commit just manually issues syncs by twiddling
the appropriate bits of sync_ctrl.

Along with this comes a hardware change to SWARM: the external HB
supplied has been changed to a pseudo-SOWF (multiple of a complete
Walsh cycle) generated by the DDS computer and transmitted over a
ribbon cable to a TTL buffer connected to the former HB distribution
box.
[swarm] Changed definition of a "valid" baseline.

This now returns True only if both sides of the baseline are the
same chunk, i.e. it's not a cross-chunk correlation. This changes
some of the downstream data processing and generally eliminates a
bug in the multi-chunk configuration.
[swarm/data] For autos the non-inverted sideband is transmitted.

Previously SWARM was sending the LSB to dataCatcher/corrSaver which
happens to be inverted by default. SWARM now correctly sends the USB
and copies the USB to the "LSB" when using sendIntegration.
[swarm/core] Added ADC5g calibration to SwarmMember.setup()

This now adds the adc5g package dependency which is provided by the
sma-wideband/adc_tests repository.
[swarm] Added symlink to pysendint.
[swarm/core] add qdr verification, reset

Added 3 functions to the member class of swarm.  one retrieves
the qdr status, one will reset a given qdr, and one will use these
functions to reset any qdrs needed.  this last function is called
in the setup of the member object, immediately after programming
the bitcode.

Added to defines file QDR specific calls, ranges.
[swarm_ctrl] No need to do both chunks in log_stats callback.

This information is already included in the baselines looop.
[swarm_ctrl] Added an argparse option to log or not log stats.
[swarm/core] Some fixes to how the QDR verification is done.
[swarm/core] Changed set_itime to use non-hard-coded Walsh step length.
[swarm/defines] Changed Walsh step length from 64 to 128.

This is only appropriate for the half-rate system using all 16 inputs
and the SMA 256-step Walsh patterns (of which we only use the even
ones).
[swarm/core] Extracted the sync part of Swarm.setup into Swarm.sync.

This should allow re-syncing after an initial setup though this may not
be used since it may upset a running system.
[swarm/core] Added the ability to load de-Walsh patterns.

This reads a pre-computed file of antenna to Walsh pattern mapping and
writes the patterns into the block memory on the FPGA responsible for
de-Walshing. There is a function to do this in SwarmMember and another
to run this function in a Swarm for all members.
[swarm/data] The received accumulation log messages are now INFO level.