task/ta14 -- insert record into the job table

table/job.py
* update the job table schema with all columns required to insert
task/ta14 -- insert record into the job table

table/__init__.py
* new Tables class which acts as a base for Nparcel tables
* new method insert() for generic SQL table inserts

__init__.py
include Table class into nparcel namespace

table/job.py
* now inherits from nparcel.table.Table
task/ta16 -- loader table column mapper

Convert the parser fields to Nparcel table column names in
preparation for table manipulation

loader.py
* new method table_column_map() which does generic parser
  field to table column translations
* JOB_MAP global that
task/ta17 -- add "job" table mapper to loader.py

loader.py
* extended the FIELDS global to capture all parse fields for
  nparcel
* refactored table_column_map() method to handle new JOB_MAP
  structure
task/ta18 -- translate BU from Identifier field

loader.py
* introduced notion of a "callback" facility into the JOB_MAP
  global data structure to perform addtional processing on
  extracted raw field values
* updated the table_column_map() method to execute callbacks
* new method translate_bu_id() which translates Identifer
  information into corresponding Business Unit
task/ta20 -- translate postcode to state

loader.py
* introduced the POSTCODE_MAP global which maintains the
  state to postcode mappings
* new method translate_postcode() to handle postcode to
  state translations
task/ta21 -- job_item table ORM

__init__.py
* add JobItem class to the nparcel namespace

table/jobitem.py
* new job_item ORM
Merge branch 'feature/us21' into dev