Implement Check Spelling

Now using Edit -> Spelling -> Check Spelling selects next spelling error or one
at caret if it was not yet selected, then shows context menu with correction
suggestions.

This makes checking spelling as easy as tapping Cmd+;
Add Show Next for quick spelling iteration

Also add key equivalents to spell popup menu.
Reduce text overlap when showing context menu
Invalidate spelling when ignoring or learning a word

We invalidate the entire buffer since the word can appear in multiple locations. This could be optimized to only invalidate misspelled instances of the ignored or learned word. Likewise, we redraw entire buffer since the refresh macro is not able to handle changes in spelling meta data and calculate minimal refresh region.
Only show suggestions when Check Spelling is called via menu item

Otherwise just select next spelling error on Check Spelling, which is called by
spelling panel as well.