task/ta-npi-022-01 -- introduce the new RestEmailer module

nparcel/restemailer.py
* new REST based emailer.
task/ta-npi-022-02 -- factor out the REST components into a separate
module

nparcel/rest.py
* new REST base module
task/ta-npi-022-03 -- base RestEmailer off nparcel.rest module instead
of nparcel.sms

nparcel/rest.py
* new attributes api_username and api_password

nparcel/restemailer.py
* nparcel.RestEmailer class now inherits off nparcel.Rest
* nparcel.RestEmailer class now includes new arguments api_username and
  api_password
* factored out the username and password arguments from the
  encode_params() method
task/ta-npi-022-04 -- HTML email structure

nparcel/images/
nparcel/templates/
* new templates and images to support HTML email structure
task/ta-npi-022-05 -- REST emailer send

nparcel/restemailer.py
* introduced structure similar to the email send so that we can
  prepare the message with MIME multi-parts
* added the sender attribute the __init__() method
* new method xxx() as a placeholder to replace the existing send()
  method
* new method validate() to run a basic check over the email address
task/ta-npi-022-06 -- base Smser off the rest module

nparcel/restsmser.py
* new RestSms class

nparcel/conf/nparceld.conf
* placeholder for the sms username and password
task/ta-npi-022-07 -- integrate RestSmser class into loader.py

nparcel/loader.py
* refactored the Loader() __init__ so that the SMS API details are
  capture in a dictionary structure
* refactored the send_sms() method to support the RestSmser structure

nparcel/loaderdaemon.py
* updated the _start() method so that is constructs the required SMS API
  construct to pass to the Loader() initialiser

nparcel/restsmser.py
* new method create_comms() to create the SMS data string to send
task/ta-npi-022-08 -- integrate  RestEmailer into loader.py

nparcel/emailer.py
* send() method signature now supports mime-based message string via
  new argument, mime_message
* refactored send() method so that it can send a MIME message inline
  or generate a message from a provided message string

nparcel/loader.py
* __init__() method signature update to support email_api kwargs
  attribute
* refactor the send_email() method to support the new RestEmailer()
  class

nparcel/loaderdaemon.py
* update _start() method so that Loader() call supports email_api kwargs

nparcel/restemailer.py
* refactor work to make production ready

nparcel/templates/email_html.t
* make embedded images base64 to support Esendex platform
task/ta-npi-022-09 -- refactor the comms send facility

nparcel/loader.py
* updated the _process() method so that agent search occurs only once
  before the sending of comms.  This avoids querying for the same agent
  for each type of comm (email and SMS)