I'm confused by this.  It looks like none of the backends (including on this branch) implement `_draw_text_as_path`, but it's listed here as required.  Isn't `_draw_text_as_path` implemented in the base, calling `draw_path` in the concrete implementation?  And the change here is that `draw_text` is no longer required?  And isn't `get_text_width_height_descent` required if `draw_text` is implemented?