Fix CMake version detection to handle dirty tags ("v0.5.2-dirty")

Uncommitted changes directly on a tagged version omit the commit # &
SHA1.
Attempt to report JSON strings in test output when two objects mis-match

Improves upon the existing reported string of "[Object object]". If the
object being serialised has recursive structures, the report string will
fall back to the previous implementation.
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.
Merge pull request #747 from peitschie/split-p-style-props

Fix direct cursor styling behaviour
Add changelog update for PR #747
Merge pull request #748 from peitschie/changelog

Add changelog update for PR #747
Add UI buttons for list creation
Add list controller and responding to cursor events
Operations for adding and removing lists

These operations work on the level of top level lists only
Operational transforms for adding and removing lists

This handles adding lists of the exact same range and removing the same list or
different lists. Adding lists of intersecting ranges returns and
unresolvable conflict atm.
Tests for add and remove list operations