Stop handling events that don't change local state.
Stop handling events that don't change local state.

For interactions, this prevents re-evaluating whether the program
needs to busy loop, when a trivial event occurs.

For games, this even avoids sending an event over the network if it
wouldn't change the state currently visible to the user.  This can
lead to significant savings in event propagation for mouse events.

This is a partial fix for #379

alphalambda/codeworld,pranjaltale16/codeworld,tgdavies/codeworld,venkat24/codeworld,venkat24/codeworld,alphalambda/codeworld,tgdavies/codeworld,parvmor/codeworld,three/codeworld,google/codeworld,nomeata/codeworld,nomeata/codeworld,alphalambda/codeworld,google/codeworld,parvmor/codeworld,google/codeworld,three/codeworld,parvmor/codeworld,three/codeworld,pranjaltale16/codeworld,nomeata/codeworld,pranjaltale16/codeworld,venkat24/codeworld,tgdavies/codeworld