Split widget trait
- remove Wrap / get_widget methods from Widget trait. these don't need to be public.
- move the previous methods to the traits FFIWidget, the user cannot see it.
- Widget need FFIWidget to be implemented

This ensure that a user cannot create a Widget other than one defined in rgtk as the trait FFIWidget is not public.