task/us89-ta27 -- Inbound FTP (ParcelPoint) support for multiple
target directories

* slight rework to patch the tests
Prepare for release 0.28
Incorrectly badge version 0.26 as 0.28
task/us87-ta25 -- Refactor the nparcel.StopParser module to support
TCD columns

nparcel/b2cconfig.py
 nparcel/conf/nparceld.conf
* remove all trace of mts in attribute names
* refactor the pe_in attribute to mapper_in_dirs to align with Mapper
  functionality opposed to Primary Elect

nparcel/mapperdaemon.py
* source inbound directories from mapper_in_dirs config item instead
  of the defunct pe_in_dirs

nparcel/ondeliverydaemon.py
* update the default report_file_format to align with TCD
  ('TCD_Deliveries_\d{14}\.DAT')
task/us87-ta30 -- Load Multiple TCD files during the processing loop

nparcel/b2cconfig.py
nparcel/conf/nparceld.conf
* new attribute file_cache_size under the [primary elect] setting that
  is the number of date-orderd TCD files to load during a processing
  loop

nparcel/ondelivery.py
* changed the "in_file" string tribute to a list "in_files"
* updated the process() method signature call parameter list
  from tcd_files in in_files
* updated the read() method to handle a list of files to parse

nparcel/ondeliverydaemon.py
* updated the call to the nparcel.OnDelivery:process() method to support
  a list of "in_files"
nparcel/b2cconfig.py
* moved the primary_elect:inbound_tcd config option to dirs:tcd_in to be
  more consistent with the nparceld.conf setup

nparcel/ondeliverydaemon.py
* new attribute "file_cache_size" that controls the number of
  date-orderd TCD files to load during a processing loop

nparcel/ondeliverydaemon.py
* refactored the get_files() method to select file_cache_size files
  and to delete the remainders
* get_files() update also support a dry pass that will not purge dated
  TCD files from the system
task/us87-ta31 -- Refactor the nparcel.StopParser connote_lookup()
method to support item numbers

nparcel/ondelivery.py
* updated the process() method so that the call to the
  nparcel.ondelivery:connote_delivered() method to factor item number
  in the method call

nparcel/stopparser.py
* new attribute "item_header" that translates to the report header
  file's
  item number column
* refactored the set_connotes() method to manage a connote based
  list of item numbers
* refactored the connote_delivered() method to incorporate an optional
  item_nbr in the search
defect/de-22 -- Stocktake Reports generate SQL exception

nparcel/table/jobitem.py
* placed a DISTINCT clause around the job_based_reference_sql()
  method subqueries
Required mods for a 0.27.3 release prior to 0.28 cutover
Patched the sms delay template in preparation for release v0.28
Roll over to release v0.28
Merge branch 'master' of https://github.com/loum/nparcel
Roll over to release v0.28
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