* Refactor BitmapCanvas. Fix image compositing bug. Allocate canvas lazily
* Fix recording canvas test by restoring context save
* Update recording canvas test for drawColor to show multiply blend
* [web] Fix ParagraphRuler.hitTest
* [web] Add a test-case for paragraph.getPositionForOffset and nested TextSpans
* [web] Add a test-case for paragraph.getPositionForOffset and nested TextSpans
* [web] remove trailing spaces
* [web] avoid differences of overflow-wrap between chrome and firefox
* Introduce `SkiaObject` an object that's backed by Skia C++ objects that need to be explicitly deleted.
* Automatically delete `SkiaObject`s at the end of frame.
* Make `SkPaint` a `SkiaObject`.
Because `SkiaObject`s are deleted at the end of the frame, the object can be reused as many times as necessary within the frame. `SkPaint` in particular is a fairly expensive object. Reusing this object, for example, on `drawRRect` drops the canvas paint time by 30%.
* adding the default text editing strategy
* [DRAFT] Refactoring text editing. Strategy pattern is used to handle different browser/operating system and a11y behaviour. Unit tests are missing. Documentation needs updating.
* addressing PR comments
* addressing PR comments. Fixing documentation
* fixing persistenttextediting element which is used in a11y mode
* removing texteditingelement and using texteditingstrategy from hybridtextediting. fixing the unit tests. fixing comments
* fix unit tests
* add todos for firefox tests
* fixing chrome/android a11y issue