New library: streamlit-server-state, a new way to share states across sessions on the server

@TeddyHuang-00
Thank you for the investigation and the report.

Ah, I didn’t expect such usage where an object is used as a data container and set to a server-state item.

I think the current mechanism is necessary in some aspect, for example, in order to avoid infinite loops of re-running or to reduce unnecessary re-runs for efficiency sake.
FYI, as an excuse, this hashing mechanism is based on the implementation of value change detector in PySnooper. Additionally, I think this specific case is solved if object.__dict__ is added to the hashing targets.

As a general solution (or a workaround), what if a new function is introduced to forcefully rerun the sessions, something like streamtlit_server_state.force_rerun_bound_sessions()?