Make Selections properly update on direct styling.

* Fix faulty range comparison logic for `DomUtils.rangeIntersectsNode` by using `DomUtils.rangesIntersect`.
* Similarly clean up `DomUtils.rangeContainsNode` using `DomUtils.containsRange`.

* Added various tests for range intersection.

This fixes issue #200 because now `OpApplyDirectStyling` knows for which paragraphs it should fire `signalParagraphChanged`.