task/ta-npe-013-04 -- refactor the uncollected job_items

nparcel/table/jobitem.py
* refactored the uncollected_primary_elect_jobitems_sql()
  method into the general uncollected_jobitems_sql() method
* the uncollected_jobitems_sql() method signature now defaults
  to service_code 3 and bu_ids None

nparcel/ondelivery.py
* in process() method replaced
  uncollected_primary_elect_jobitems_sql()
  call with refactored uncollected_jobitems_sql
task/ta-npe-013-05 -- update condition map to control
Primary Elect and On Delivery processing per Business Unit

nparcel/b2cconfig.py
* new condition map items pe_comms and on_del_sc_4
* new method bu_ids_with_set_condition() that will traverse
  the condition map for all Business Units and return the
  Business Unit IDs whose give flag is set

nparcel/conf/nparceld.conf
* add new items pe_comms and on_del_sc_4 to the
  condition map
task/ta-npe-013-06 -- genericise uncollected job_item
extraction

nparcel/ondelivery.py
* refactor the get_uncollected_primary_elect_job_items()
  into get_uncollected_job_items() so
  that it can act as a generic job_item extractor
* new method get_uncollected_job_items() that extracts
  job_items based on service_code and Business Unit IDs
* update the process() method signature to include
  tmeplate, service_code and bu_ids attributes
* udpate the process() method to handle dynamic templates
  for comms event file generation

nparcel/ondeliverydaemon.py
* update the _start method() so that the call to the
  process() method includes a default template value
  of 'pe' to maintain support for Primary Elect
task/ta-npe-013-07 -- OnDelivery daemon treats Primary
Elect uncollected parcels as a separate iteration

nparcel/b2cconfig.py
* new helper property to return the condition map IDs
  for Primary Elect comms

nparcel/ondeliverydaemon.py
* replaced "_pe" attribute name with "_od" to align
  with new OnDelivery() refactor
* changed the way in which the MTS file was being
  identified in the process() method.  Also, processing
  is now not dependent on the existence of an MTS file
* moved the MTS filename validation logic from the process()
  method into get_files() -- makes more sense here
task/ta-npe-013-08 -- incorporate fixtures in OnDelivery tests
task/ta-npe-013-09 -- enable Service Code 4 comms On Delivery

nparcel/b2cconfig.py
* new helper property sc4_comms_ids to return the condition
  map IDs for Service Code 4 comms

nparcel/ondeliverydaemon.py
* new attribute sc4_bu_ids that captures the IDs whose
  condition map is set to process Service Code 4 on
  delivery comms
* updated the start() method to perform a Service Code 4 on
  delivery comms iteration