Fix direct cursor styling behaviour

Recent changes to Formatting.getAppliedStyles return type were not correctly spread through the DirectFormattingController. Update the CC types and fix incorrect type usages in this controller.

To help preserve future sanity, some rough unit tests have been added for the specifically fixed branches ONLY.

Fixes #723.
No particular reason other than mergeIntoParent allowed me to escape writing an anonymous inner function. I'm lazy like that sometimes  :children_crossing: