[Mac] Implement MacClipboardBackend
[Mac] Implement MacEngine methods, TimerInvoke and CancelTimerInvoke
Improved backend registry architecture

Widgets now declare the backend they require using an class
attribute. Backends are now registered using the backend
interface type as key instead of using the frontend type.
Added new method for wrapping existing native widgets
into XWT widgets.
Use the new api for registering backends
Simplify a bit the backend creation api
Add support for native widget embedding
Fix compilation issue
[Mac] Fix menu backend

Fixes removing items and displaying pop up menus
Add RowActivated events to ListView and TreeView
[GtkBackend] Force image to appear on menu item
Fix parsing for inline code blocks.

The regex here was too greedy and was taking all characters in between
the first and the final ` if there was more than one on a line. With
this fix, we'll match all the `-fenced blocks on the line instead of
one giant block.
[Mac] Don't crash if InitializeApplication is called more than once
Fix Context to use the correct backend handler

It should use the backend handler from the passed Toolkit, not the
currently active one.
Add WrapContext method to Toolkit and Mac implementation

This method wraps a native drawing context into an xwt Context.
[Gtk] Dispose Cairo contexts
[Mac] Use NSFontManager for some font conversions as the old method wasn't reliable
[Xwt.Mac] Try to tweak Expander backend sizing but it's still not optimal.
[ComboBox] Fix SelectedItem/SelectedText
[Mac] Improve TextLayout backend to better match its Gtk counterpart

The line height calculations and newline behavior now match the Gtk backend
[Xwt] Wrap ImageBuilder in a using statement

It's better than manually calling Dispose on it later.