Configurable is a simple interface used to pass configuration information
to an object. The implementing object is ultimately responsible for
maintaining any of that configuration information in any fashion it so
desires. Most will create a Configuration instance to manage the data
in a consistent, and easy to access fashion.

A Configurable object should be considered 'configured' after receiving
a call to setConfig(). No additional configuration activities should be
expected of the instance, and so setConfig() should be the last call in
any set of configuration commands against an object.