BREAKING CHANGE: Use object as interface for config files.

This allows more informative error messages, catching typos,
deprecation, and so on.

Your existing config files must be updated for the new format.