Add utility for patching config.
Use new config patching in tests.
Add helpers for accessing entire config.
Rename FooTestCase to TestFoo across the board. Also a little more general cleanup.
Merge branch 'develop' into feature/adhoc-amqp-test-helper

Conflicts:
	go/base/tests/test_go_manage_metrics.py
	go/vumitools/tests/test_app_worker.py
	go/vumitools/tests/test_metrics_worker.py
Fix race condition in metrics worker looping function test (the looping call could fire before the explicit call to the looping function, cause two sets of command messages to be sent). (@jerith).
Fix accessing of conversation config in subscription metrics generation (@jerith).
Merge branch 'develop' into feature/issue-782-temporary-config-solution
Merge branch 'develop' into feature/adhoc-amqp-test-helper

Conflicts:
	go/apps/subscription/tests/test_definition.py
Merge branch 'feature/issue-772-gouser-permissions' into develop
Merge branch 'feature/issue-782-temporary-config-solution' into develop
Merge branch 'develop' into feature/adhoc-amqp-test-helper

Conflicts:
	go/base/tests/test_go_manage_applications.py
	go/base/tests/test_utils.py
	go/base/tests/utils.py
	go/conversation/tests.py
Add MetricSet and ConversationMetricSet to allow a way for metrics to be looked up by their names (will need this for dashboard building)
Start of dashboard infrastructure
Implement visit_dicts (recursively visits nested dicts in a collection, needed for dashboard layout parsing)
Tests for DashboardLayout
Change conversation definition to use ConversationMetricSet when retrieving metrics with get_metrics()
Allow a conversation view definition to get the conversation's metrics from the conversation definition
Fixes for go.dashboard.Dashboard
Remove redundant error handling in Dashboard.sync()