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.