Kid Configuration Consolidation
As the work to simplify the Kid code base continues it became obvious to me that there needs to be a unified way to handle configuration options. Currently there are four ways that default options are set:
- Environment variables (e.g. KID_OUTPUT_PY)
- String literals (e.g. 'utf-8' hard coded in KidParser.__init__)
- Global variables in a module (e.g. assume_encoding in kid/__init__.py)
- Class attributes (e.g. Serializer.encoding)