Add MessagesSentMetric and MessagesReceivedMetric conversation metric types
Allow conversation metrics to be specified as part of the conversation definition
Change GoWorkerMixin to publish conversation metrics using the metric types specified on the conversation's definition
Remove custom metric collection for bulk message app (metrics for messages sent and received are now collected by default for conversations)
Remove custom metric collection for sequential send app (metrics for messages sent and received are now collected by default for conversations)
Obtain the vumi and user apis in oneshot() and get_value() instead of in initialisation for conversation metrics
Move metric test utils out of go.vumitools.tests.test_metrics and into go.vumitools.test.utils
Separate out oneshot_with_value() from TxMetric and DjangoMetric's oneshot()
Change GoWorkerMixin to use the new TxMetric.oneshot_with_value()
GoWorkerMixin tests for conversation and account metric publishing
Add SubscribedMetric and UnsubscribedMetric for subscription app
Add a custom get_metrics() to subscription app's conversation definition
Remove subscription vumi app's collect_metrics(), this is now handled by GoWorkerMixin using the metrics specified in the conversation definition
Fix ResponseTimeMiddle to use the new one oneshot_with_value() for publishing metrics
Fix bad test module name (tests_metrics.py -> test_metrics.py)
Better testing for subscription conversation definition's metrics retrieval
Use a separate class level variable for the contact key to use as a lookup for subscription metrics
Differentiate between contact lookup key and metric name for SubscriptionMetric tests
Get rid of oneshot_with_value()
Don't pass around vumi_api for ConversationMetric.get_value(), we already have the api since we pass in user_api