Changes:
- Implement basic integration testing with low coverage initially
- `max_bytes` was incorrectly associated with `max_msg_size`, we now default to 1GB for the former and 4MB for the latter
- Retry publish/fetch on `nats.js.errors.NoStreamResponseError`
- Error codes are numbers, not strings
- If `WPI` message fails, report why
- Also reduce `WPI` interval to 10 seconds, so two have to fail to hit the default 30s window
- Bump `nats-py` to 2.9.0