Add profiling and performance application
Extended watchdog timeouts to allow profiling on slower machines
Small cleanup to cursor insertion logic

Don't need to walk through each sibling to find the correct offset.
Extract TextPositionFilter into standalone class for easier tuning and testing
Extract StepsTranslator interface to allow a safe interface to start caching improvements
Cope with translating dom points outside the root node to steps

Previously, various consumers needed to be careful about only
asking for nodes inside the root node. Failure to do so resulted
in unpredictable behaviour.

To simplify the interface and improve the system robustness, this
rounding is now taken care of behind the StepsTranslator interface.
Added signals necessary to keep a caching implementation in sync with the document
Add caching for steps to DOM point conversion
Added more test docs
Additional cache fixes and tests
WIP diagnostics
WIP Combine node & position filter