To the reader who is not very familiar with how the internals of IPython work, I think the names of these events are still very confusing (`pre_execute`, `post_execute`, `pre_run_cell`, `post_run_cell`) and the descriptions don't really help. It is also not clear the order in which these are triggered. Even if we don't rename them we should add better comments to clarify when they are triggered.