Started adding support for obtaining external data related resources
Updated test_data/usgs.nc sample file

Replaced the usgs.nc sample file with a better test file: more variables, better data (old file had lots of NaN values), obtained from R1 ion-test system
Added ignore pattern for .cdl files

Ignore NetCDF header-dump files: generated by ncdump
Added support for retrieval/usage of EOI Resources

Resource creation during setup of tests
Usage of resources in external_dataset_agent

Reorganized functions in test class
Modifications to allow simple subclassing of test_external_dataset_agent

Reorganized test_external_dataset_agent so that it can be easily subclassed to allow testing of specific data handlers via the agent framework
	- The default (TestExternalDatasetAgent) utilizes the base_data_handler.DummyDataHandler class

Added test_external_dataset_agent.TestExternalDatasetAgent_Fibonacci for testing using the base_data_handler.FibonacciDataHandler class

Added test_external_dataset_agent_netcdf.TestExternalDatasetAgent_Netcdf - for testing the netcdf_data_handler.NetcdfDataHandler
Tweaked config assignment/usage;  Modified guts of _get_data in netcdf_data_handler

After conversation with Arch & MI Team
	- pass on configure call, not needed by DataHandler
	- baseline configuration passed during initialization of DataHandler

'dvr_cfg' key added to 'config' argument(s) passed to execute_* functions - allows appropriate portions of baseline config to be accessed in classmethods

Modified NetcdfDataHandler._get_data to utilize the ExternalDatasetResource (from config['dvr_cfg']) to retrieve data from the netcdf resource.  Also added code to iterate over the time-slice and return data 1 timestep at a time (rather than as a repeated block)
Added some TODO's
Moved all External Dataset Agent and Data Handler code into the ion/agents/data module
Minor refactoring of config key name(s)
Removed all uses of DataHandlerParameter.*

Something changed under the hood of DriverParameter such that the members no longer resolve cleanly to str - cannot be used for keying and such.  Replaced all usages of DataHandlerParameter.* and DriverParameter.All with their string equivalents.
Reworked the dh_config formulation

Added stream_id = part of the base configuration (for new_data requests), but overridden by historical requests

Modified execute_acquire_data such that if a config is not provided, it is assumed to be a "new_data" request and self._dh_config is used

Updated everything to be in sync with the new config formulation

Commented lingering 'acquire_sample' call within TestExternalDatasetAgent.test_errors
Adding taxonomy and publisher implementations
Taxonomy and publisher in place and functioning for all data handlers; added data_producer_id as part of the config

Taxonomy added for all 3 data handler implementations, including NetcdfDataHandler

Granule creation and publishing functional for all 3 data handler implementations

Added class-level pubsub_client to TestExternalDatasetAgent to allow subclasses to create streams for testing

Added 'data_producer_id' to the dh_cfg portion of the configuration:  This may not be appropriate, but should come from somewhere outside of the agent/handler (i.e. DAMS), so needs to be provided somewhere
Added StreamGranuleLogger for reporting published granules

Implemented and use TestExternalDataset.create_stream_and_logger() that creates a stream (if not provided) and a StreamGranuleLogger.  Available by test subclasses for use in _setup_resources()

StreamGranuleLogger in place and functioning for reporting of granules published by a DataHandler
Added 'max_rec' and made changes to utilize it appropriately

Added 'max_records' attribute to config - indicates the maximum number of records to put in each granule

Modified _get_data methods and other config attributes accordingly

Added BaseDataHandler cls._calc_iter_cnt function to calculate the # of iterations given the total # of records and max_rec
Altered the base class for testing dataset agents

Changed the base test class to NOT inherit from IonIntegrationTestCase - subclasses now inherit from both the test class as well as IonIntegrationTestCase.  If this is not the setup, the base tests in the base test class are run for every subclass
Added first pass at data handler for glider (slocum) data; shell for HFR data handler

Concrete data handler implementation and test class for acquiring slouch data

Shell class for HFR concrete data handler implementation
Modified binary test_data/usgs.nc sample

Removed the 'history' attribute to allow clean comparison across fingerprints
Modified contents of DVR_CONFIG to eliminate non-serializable objects; updated all tests to pass

Removed the DVR_CONFIG.external_dataset_res member - now retrieved from the ResourceRegistry by the ExternalDatasetAgent during _start_driver() using the agent's resource_id

Changed the value of the DVR_CONFIG.taxonomy member to be the serialized version of the Taxonomy object (from TaxyTool.dump()).  Modified all reads of the DVR_CONFIG.taxonomy member to use TaxyTool.load()

Modified all relevant tests (both EDA and DAMS) appropriately
Changed "INT" to "INT_EOI" to prevent buildbot from running forever when this is merged - temporary