task/us85-ta39 -- ADP flat file column headers as a configurable item

nparcel/b2cconfig.py
nparcel/conf/nparceld.conf
* new attribute adp_headers that is a dictionary of agent table
  columns to column headers in the ADP bulk insert file
task/us85-ta44 -- Agent table ORM update - functional

nparcel/dbsession.py
* support for new parcel_size table creation

nparcel/table/agent.py
* update the schema() property method to capture all of the fields
  that could come through via the ADP bulk insert list

nparcel/table/parcel_size.py
* ORM for new parcel_size table
task/us85-ta41 -- ADP flat file parser module structure - functional

nparcel/adpparser.py
* new AdpParser() class module structure that includes
  a file parser and and object setter
task/us85-ta45 -- ADP flat file parser daemoniser module structure -
functional

nparcel/adpdaemon.py
* new AdpDaemon facility with _start() method stub
task/us85-ta40 -- xlsx to csv converter

nparcel/conf/nparceld.conf
nparcel/b2cconfig.py
* new attribute adp_dirs that defines the ADP bulk load inbound
  directory
* new attribute file_formats under the [adp] section that is a list of
  filters to apply against ADP bulk load files

nparcel/ondeliverydaemon.py
* refactored the get_files() method by removing the redundant
  validate_file() method

nparcel/adpdaemon.py
* new support for new attribute adp_in_dirs
* _start() method support for inline file processing
* new attribute adp_file_formats that can filter out
  special types of ADP bulk load files
* new method get_files() that looks for ADP files in inbound directory

nparcel/utils/files.py
* new function xlsx_to_csv_converter()
task/us85-ta45 -- ADP flat file parser daemoniser module structure -
functional

nparcel/adpdaemon.py
* new AdpDaemon facility with _start() method stub
Merge branch 'task/us85-ta40' into feature/us-85

Conflicts:
	nparcel/adpdaemon.py
	nparcel/tests/test_adpdaemon.py
task/us85-ta43 -- ADP agent table insert SQL if the code has not
already been defined

nparcel/b2cconfig.py
nparcel/conf/nparceld.conf
* new attribute code_header that is a special ADP bulk insert header
  name that relates to the agent.code column

nparcel/adp.py
* introduce the Adp() class infrastructure
* new attribute "headers" which is a dictionary of  agent  table
  column keys and corresponding ADP bulk insert file header values
* new method process() that parses an ADP bulk insert file and
  attempts to load the items into the agent table
* new method extract_values() takes the raw values presented by a row
  in the ADP bulk update file and extracts the required values as per
  the values in the headers attribute
* update the process() method to check agent table against code before
  attempting an insert
task/us101-ta51 -- ADP bulkd file loader script npadpd

nparcel/bin/npadpd
* new npadpd ADP bulk loader script

nparcel/adpdaemon.py
* update the _start() method to search for ADP bulk load files in
  nominated directory
task/us101-ta55 -- ADP column value to agent table SQL sanitiser and
validator

nparcel/adp.py
* process() method now returns a boolean value against success
* new method sanitise() that provides hardwired sanitiser rules that
  need to be applied to bulk insert data before being inserted into
  the database
* new method validate() that provides hardwired validator rules that
  need to be applied to bulk insert data before being inserted into
  the database

nparcel/loader.py
nparcel/postcode.py
* factor out the translate_postcode() method into generic module,
  parcel/postcode.py
Add support for alerting.
task/us101-ta56 -- Agent reference table ORM update - functional

nparcel/table/delivery_partner.py
nparcel/table/login_account.py
nparcel/table/system_level_access.py
* new ORM module structures
task/us101-ta56 -- Agent reference table ORM update - functional

nparcel/table/login_access.py
* new ORM module structure
task/us101-ta58 -- ADP delivery_partner values as a configuration item

nparcel/conf/nparceld.conf
* support for the new delivery_partners attribute
* support for the new adp_default_password attribute
task/us101-ta55 (commit 2) -- ADP column value to agent table SQL
sanitiser and validator

nparcel/conf/nparceld.conf
nparcel/b2cconfig.py
* new attribute delivery_partners which is a list of
  "delivery_partner.name" column values
* new attribute adp_default_passwords delivery partner lookup for the
  default password to use when populating the "login_account.password"
  field
* refactor the [adp_headers] section so that it includes the table
  name as we are now inserting into multiple tables and need this
  level of separation to avoid ambiguous column names

nparcel/adp.py
* support for new attribute delivery_partners
* new method reset() that clears the alert list and commits to the
  database as per the context of the pass
* refactor the sanitise() method to determine the delivery partner id
  before inserting to the agent table
* refactor the validate method to validate against the
  delivery_partner.id column
Merge branch 'task/us101-ta55' into feature/us-101

Conflicts:
	nparcel/conf/nparceld.conf
	nparcel/tests/test_adpdaemon.py
	nparcel/tests/test_b2cconfig.py
task/us101-ta57 -- ADP insert to accommodate new columns in
delivery_partner, login_access, system_level_access and login_account
tables

nparcel/adp.py
* support for attribute default_passwords
* refactor the sanitise() method to provide a default password and
  translate the login_account.status column value
* refactor the validate() method to check for valid username and
  password values
* update the process() method to insert default values into the
  login_access table

nparcel/adpdaemon.py
* _start() method passes through the adp_default_password attribute to
  the Adp() class initialisation