Don't emit swap or change events when structure doesn't change

Don't emit swap or change events when updating structure doesn't actually change anything. In a similar manner, don't update history; otherwise you may pollute it.

- [ ] consideration of `.on('signal')` event to emit whenever a `Cursor.update` method is called.