- Add response_metadata to all shapes that are output shapes. All Client methods return a dictionary with `ResponseMetadata` even when they say they return nothing. So we must default to some base response shape (dataclass) which all response shapes inherit from and which has the `response_metadata` field. It is mandatory anyway.
- Add property to shapes that allow easy detection if they are strictly output shapes.
- Add property to shapes that allow easy detection if they are strictly input shapes.
- Replace `Style` with `BotogenConfig` which is backed by `BotogenEnv(Profile)`.
- Combine `generate` with `Botogen` — no need for this separation.
- Separate development requirements from install requirements - `html2text`, `pygments`, `yapf` and others are not needed for install.
- Execute all generated shapes modules.
- Allow passing botogen options via command-line. In particular, the services to generate, the build directory, target package. Allow disabling the formatter so that on the first run we just generate all and execute all without waiting for formatter. Allow passing flag to disable/enable execution of the generated module code.
- Make `Client` available at `autoboto.services.<service_name>.Client`
- Add string representation for `_NOT_SET` and make it falsey.
- Add a README.rst file under `autoboto/services` telling users and developers that python files in the directory are generated.