Attempt to read selection style information even when there
is no text element/node in the selection.
Generate and cache style summary for selections that do not
contain text.

This divides the `isEnabled` information of DirectFormattingController
into two parts, `directTextStyling` and `directParagraphStyling`.

The widgets are accordingly updated.
Rename isEnabled to enabledFeatures inside DirectFormattingController.
Merge pull request #660 from adityab/annotation-selection-style

Fix style buttons' behavior when selecting the two positions around an annotation