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.
I've changed this to be less lazy!