task/ta-npe-001-01 -- parse Service Code offset

nparcel/loader.py
* updated the FIELDS global to accept the new "Service Code" value
* updated the JOB_MAP global to translate the "Service Code" to the
  job.service_code column

nparcel/table/job.py
* updated the schema() method to include the new service_code column
task/ta-npe-001-02 -- translate raw Service Code

nparcel/loader.py
* updated the FIELDS global to include a callback option under the
  "Service Code" value
* new method translate_service_code()  to translate postcode
  information to state

nparcel/table/__init__.py
* updated the insert_sql() method handle the 'NULL' string during
  inserts
task/ta-npe-001-03 -- introduce new primaryelect.py module structure
task/ta-npe-001-04 -- connote based jobitem extraction

nparcel/primaryelect.py
* refactor the PrimaryElect class so that it inherits from Reminder() as
  much of the functionality is similar

nparcel/table/jobitem.py
* new method connote_base_primary_elect_job() which provides an SQL
  wrapper to verify if a *connote* is associated with a primary elect
  job
task/ta-npe-001-05 -- integrate connote search into PrimaryElect()
processing

nparcel/templates/email_err_pe_html.t
nparcel/templates/email_pe_html.t
nparcel/templates/sms_pe_xml.t
* new templates

nparcel/primaryelect.py
* new method get_primary_elect_job_item_id() eturn ``jobitem.id`` whose
  connote is associated with a job that is defined "Primary Elect"
  (job.service_code = 3)
* new method process() identifies primary elects jobs based on
  job_item connote value
task/ta-npe-001-07 -- support for daemonisation

nparcel/primaryelectdaemon.py
* new primary elect daemoniser

nparcel/b2cconfig.py
nparcel/conf/nparceld.conf
* support for new pe_loop attribute to control primary elect daemon
  loops
Minor typo corrections
task/ta-npe-001-06 -- npprimaryelect controller
Patch defect in the npinit script.
Further npinit adjustments.
More npinit mods.
task/ta-npe-001-08 -- proxy config corrections

nparcel/b2cconfig.py
* proxy_scheme now managed by a separate attribute

nparcel/utils/conf/log.conf
* logging support for new facilities npinit and nppostcode

nparcel/utils/log.py
* tweak to support console logging for nosetests and <stdout>
task/ta-npe-001-09 -- introduce stopparser.py module

nparcel/stopparser.py
nparcel/tests/test_stopparser.py
doc/source/modules/stopparser.rst
* new module structure
task/ta-npe-001-10 -- define stopparser.py input file reader

nparcel/stopparser.py
* new attribute in_file which denotes the CSV input file to parse
* new method read() parses the csv file denoted by the attribute in_file
task/ta-npe-001-11 -- integrate file-based processing flow

nparcel/primaryelectdaemon.py
* updated the _start() method to process CSV-based connotes
task/ta-npe-001-12 -- update job_item.notify_ts for customer comms

nparcel/primaryelect.py
* update the process() method to update the job_item.notify_ts column

nparcel/table/jobitem.py
* update the schema() method to include the new column, notify_ts
* new method update_timestamp_sql() which updates a datetime
  based column
* new method update_notify_ts_sql() which provides an SQL to update
  the job_item.notify_ts column
* refactor update_reminder_ts_sql() method to use the generic
  update_timestamp_sql() method