Changed
- `execute_notebook` need not be passed in a `logger` instance explicitly, it will use the module-level logger if one is not provided.
- Skip executing empty code cells in `execute_notebook` to not get stuck waiting for the cell status update to come through
- Check `result.state.is_error_state` instead of `result.data.state.is_error_state` in `execute_notebook` due to corresponding changes in `noteable-origami`
- Ensure that `NoteableHandler` always has a `NoteableClient` instance defined when `NoteableHandler.read` is called
- Register `NoteableHandler` with scheme `noteable://` as entrypoint in `pyproject.toml`