Reduce duplicate events

Because of #16 there is a possibility for multiple `change` events to be emitted on a single write, a `NOTE_ATTRIB` and `NOTE_WRITE` both trigger.

Previously these would turn into multiple `contents-changed` events because of the way the old contents was compared to the new contents, it wasn't taking into account whether two reads were occurring at once and so two events could be emitted for a single write.

Now a `contents-changed` event is only emitted when a read occurs that generates a digest that is different from the last digest that a `contents-change` event was emitted for.

Feedback welcome and appreciated