Better configuration tools

We currently just pass a config dict around vumi workers and do ad-hoc extraction of items from it in various places. We need to replace this with a better mechanism that has the following properties:

 * Declarative and self-documenting config definition. (Something along the lines of zope.interface.)
 * Easy (or at least possible) to swap out for something that reads (a subset of) config information from a different place based on some property of the message being processed.