fix: although state is a copy, it's ancestors may refer to original data of a model, so clone objects is their members are changed, also avoid enless loops when objects ancestors refer to theirselves
fix: although state is a copy, it's ancestors may refer to original data of a model, so clone objects is their members are changed, also avoid enless loops when objects ancestors refer to theirselves

cornhundred/ipywidgets,jupyter-widgets/ipywidgets,cornhundred/ipywidgets,ipython/ipywidgets,SylvainCorlay/ipywidgets,SylvainCorlay/ipywidgets,SylvainCorlay/ipywidgets,cornhundred/ipywidgets,ipython/ipywidgets,SylvainCorlay/ipywidgets,jupyter-widgets/ipywidgets,cornhundred/ipywidgets,ipython/ipywidgets,jupyter-widgets/ipywidgets,jupyter-widgets/ipywidgets,ipython/ipywidgets,ipython/ipywidgets,cornhundred/ipywidgets