Use closures to separate create vs update

Rather than using the presence of a `ranges` property on an annotation
to determine whether it is new or updated, track that information via
one-shot closures subscribed to the editor events. The proper
subscriber registers via the callbacks for adder and annotation edit
clicks where it is known for certain if the annotation is new or
updated.