Wrap publish in ensure.

This fills the requirements of and fixes #91.  This adds the appropriate
tests for and code to retry delivery of messages several times
(parameterized) to ensure delivery.
Merge branch 'issues/91'

Conflicts:
	test_margarine/test_integration/test_spread/test_articles.py