Reworked how fragment get their data from the datastore.

We cannot use fragment Id and tag exclusively to look up data as in the
Android framework it is sometimes not possible to set them for the
fragments (ie using `ViewPager`).

This means we need to explicitly set the data lookup Id for fragments
when we're constructing them. Thus the `MvxFragment` class gained a new
constructor, which takes in a `dataId` parameter just for that.

The `MvxFragment` can also be constructed without specifying the
`dataId`. In that case we use the fragment Id as the data lookup Id.
This will be useful when dealing with <fragment /> tags in XML.
Updated fragment documentation.
Improved MvxBoundFragment.LayoutId getter.