Initial commit for Heartbeat support. Adding blinkenlights/monitor.py blinkenlights/publisher.py
(cherry picked from commit fc18b0f416dada25298468369b52a8c80c56b61a)
Various changes for issues that cropped up in the review. Including ...

* PEP8 adherence
* Better use of Pythonic syntax
* Refactoring to allow for improved unit testing
* HeartBeatPublisher now takes a callback which generates
  the heartbeat message body
Adding unit tests for HeartBeat changes
Make port and missing-worker deadline configurable
Added version field to HeartBeat message, as well as some validation routines
Merge branch 'develop' into feature/issue-485-worker-health-monitoring

* Heartbeat publishing is now managed in BaseWorker rather than Worker
* Stubbed out Heartbeating during unit tests
  (see vumi/tests/utils.py:get_stubbed_worker)

Conflicts:
	vumi/application/base.py
	vumi/transports/base.py
Disable heartbeats if worker_name config key is not set

(and also removed some obsolete code from sevice.py)
Added a test for HeartBeat message validation
Minor cleanups, including reverting unnecessary whitespace changes,
changing order of imports, etc
Surgery on heartbeat initialization and testing.

  * Ensure that Vas2NetsTransport calls Transport.stopWorker() on
    teardown
  * Ensure that the vas2nets tests call stopWorker() in teardown
  * Add 'worker_name=unnamed' to stubbed worker config in tests
For tests, set worker_name config entry in VumiWorkerTestCase.get_worker()
Merge pull request #485 from praekelt/feature/issue-485-worker-health-monitoring

For health monitoring, workers now periodically emit heartbeat messages.