task/ta-147 - Bulk ADP Insert mode should be a configurable option

top/adp.py
* process method() now accepts an additional parameter mode that
  defaults to insert
* new method insert() that performs the ADP insert
* refactor the process() method so that the inserting is performed by
  the new insert() method

top/adpdaemon.py
* update the call to the process() method inside _start() to not
  include the "dry" status as this was redundant
task/ta-142 -- ADP bulk updater -- stub the update method

top/adp.py
* stubbed out new method update() that will be used to update the ADP
  DB details

top/adpdaemon.py
* new attribute "mode" that defines the mode of operation
* add new parameter "mode" to top.AdpDaemon __init__
* update the _start() method so that the call to Adp.process() includes
  the "mode" attribute value as a parameter call

top/bin/topadpd
* add new command line option, --update
* add logic to translate the value of the --update flag into a "mode"
  context
* call to the AdpDaemon() object includes the "mode" context
task/ta-144 -- Identify table fields to update

top/adp.py
* new method sanitise_agent_status() that prepares the agent.status
  value for further table column adjustment
* new method filter_update_fields() that remove keys from a given
  dictionary if the value is not an empty string or not None
* new method sanitise_agent_parcel_size_code() that prepares the
  agent.parcel_size_code value for further table column adjustment
* new method sanitise_delivery_partner_id() that converts the string
  value to the equivalent delivery_partner.id
* new method sanitise_login_account_status() that prepares the
  login_account.status value for further table column adjustment
* refactor the sanitise() method to utilise the new
  sanitise_agent_status(), sanitise_agent_parcel_size_code(),
  sanitise_login_account_status and sanitise_delivery_partner_id()
  methods
task/ta-145 -- ORM - update method

top/table/__init__.py
* new method sanitise() which prepares raw data for safe use in an SQL
  DML
* refactor the insert_sql() method to use the new sanitise() method
* new method update_sql() to build an SQL DML update statement based on
  given values
task/ta-146 -- Enable ADP bulk update for agents table

top/table/agent.py
* new method agent_code_sql() that provides an SQL wrapper to return
  the id associated with the agent.code field
top/adp.py
* update the update() method to perform the agent table update
task/ta-167 -- Provide support for lats and longs in the Agent table

top/adp.py
* new methods sanitise_latitude() and sanitise_longitude() (as the
  name says)
* update the sanitise() method to include the lat/long sanitisation
  calls
* update the update() method to include the lat/long sanitisation calls

top/conf/top.conf
* enable the lat and long columns under the [adp_headers] section

top/table/agent.py
* update the agent schema to support new latitude and longitude columns
Patch broken test harness
Roll over to dev release 0.37
Documentation update