Don't compare annotations directly with ve.compare()

Annotations' attributes might contain DOM elements, which cause infinite
recursion in ve.compare(). Annotation classes can protect against this
by overriding getHashObject() to summarize DOM nodes, but that doesn't
help if that's not respected everywhere.

Instead, compare the hash objects, those are safe. This does not appear
to be a problem in practice, currently, because the nowiki annotation
is experimental, oo.compare() now short-circuits if a === b, and because
of optimizations in openAndCloseAnnotations() which lead to the relevant
compareToForSerialization() code path being taken very rarely.

Bug: 51948
Change-Id: If1bcc3eee4fd14d107db1935d89dcc5516643b53
Make <nowiki>s non-experimental again

Change-Id: Icce6c19243b82c46a6c48004065d93453bb4f8eb
Merge changes Icce6c192,If1bcc3ee

* changes:
  Make <nowiki>s non-experimental again
  Don't compare annotations directly with ve.compare()