Improve large selection removal performance

This collection of changes fixes issue #672.

Brief summary
* Delay signalling of the DirectFormattingController's enabled state changes until the op batch is complete
* Avoid enabling remove hyperlink button if hyperlinks feature is disabled
* Only update hyperlink button state once per redraw
Good find and should be working fix, but seems fragile to me. Could we rather merge `checkHyperlinkButtons` and `enableHyperlinkButtons`? Because if `gui.HyperlinkController.enabledChanged` is emitted with parameter `true` after any signal which triggers `checkHyperlinkButtons`, then `removeHyperlinkButton` could end up as enabled, when it should not.