Improve fragment builder

This PR adds a `public abstract F build();` method in `FragmentBuilder` in order to build the fragment through a generic `FragmentBuilder` instance.

I added a new narrow type `F` in this class in order to do that. It's a simple one as we can't handle native and support fragments here..