task/us89-ta33 -- Exporter is aware of inbound ParcelPoint report files

nparcel/conf/nparceld.conf
* new config item under the [dirs] section, exporter_in that is a
  directory list for file-based events to trigger a job_item closure
* new config item under the new [exporter] section, "file_formats"
  that is a list of python-based regular expressions that represent
  the type of files that can be parsed by the exporter

nparcel/b2cconfig.py
* support for new config item exporter_in
* support for new config item exporter_file_formats

nparcel/exporter.py
* class Exporter() now inherits from nparcel.Service() to leverage the
  TPP DB connectivity information
* support for new attribute exporter_in
* support for new attribute exporter_file_formats
* new method get_files() that identifies exporter report files
task/us89-ta35 -- nparcel.files.utils.copy_file() function need to
guarantee an atomic copy

nparcel/utils/files
* refactor the copy_files() function to provide an atomic copy
task/us89-ta34 -- Exporter can extract connote and item number from
inbound ParcelPoint report files

nparcel/exporter.py
* new method parse_report_file() that can parse the contents of a
  report file and extract the connote and item number fields
* new attribute connote_header that is a token used to identify the
  connote column in the Exporter report file
* new attribute item_nbr_header token used to identify the item number
  column in the Exporter report file

nparcel/b2cconfig.py
nparcel/conf/nparceld.conf
* support for the new attributes connote_header and item_nbr_header

nparcel/exporterdaemon.py
* refactored the _start() method to construct a kwargs dictionary in
  preparation for a varags-based initialisation of an Exporter() object
task/us89-ta36 -- Exporter can close off the TPP job_item taken from the
inbound ParcelPoint report files

nparcel/table/jobitem.py
* new method upd_file_based_collected_sql() that provides an SQL
  wrapper to update the collected items from the "jobitems" table
  based on connote and item number

nparcel/exporter.py
* new method file_based_updates() that acts as a wrapper to close of
  file-based records
* updated the process() method to include a call to file_based_updates()
task/us89-ta37 -- Exporter raises an exception if detail taken from
the inbound ParcelPoint report files not in TPP DB

nparcel/exporter.py
* updated the file_based_updates() method to trigger and alert if a
  connote/item_nbr combination is missing from the TPP job_item table

nparcel/exporterdaemon.py
* support for support comms notifications if an alert is detected
  during the nparcel.exporter:process() workflow