This commit adds a new type, SpewState, which can be used to create
instances with unique configuration options. The methods of SpewState are
equivalent to the top-level functions. Full documentation and examples
are included.
This paves the way to support individual configuration options through a
separate type while still providing the simple global config and package
level methods.