Android - PopBackStackImmediateName doesn't appear to be properly used in the BackStack
## 🐛 Bug Report

I ran into an issue within the Android backstack and while investigating I think I've caught a bug within MvvmCross.
I have a use case whereby I navigate to the same viewmodel multiple times in a row (but with different parameters). When trying to go 'back' one at a time, MvvmCross was closing the whole stack.

I tracked this down (I think) to the fact that MvvmCross android presenter was using FragmentName within the backstack to keep track. So all these fragments had the same FragmentName, and so had the same BackStack tag, so when PopBackStackImmediate was called with inclusive, they all closed as PopBackStackImmediate.Inclusive will close all fragment until one is found that doesn't match the ID.

Then I found PopBackStackImmediateName in the MvxFragmentAttribute which should be what I need (set the PopBackStackImmediateName to a unique name for each duplicate fragment).

However this still didn't work as it appears PopBackStackImmediateName is used when Popping, but not when Adding, so the fragments all still exist in the backstack with the tags as FragmentName, not PopBackStackImmediateName.

From what I can gather the issue is in the function PerformShowFragmentTransaction. Around line 565, before the call to AddToBackStack and before the ft.Add and ft.Replace, instead of fragmentName being passed a similar check on the attributes PopBackStackImmediateName needs to be done and this needs to be passed through instead.

Something like,

```
            var ft = fragmentManager.BeginTransaction();

            OnBeforeFragmentChanging(ft, fragment, attribute, request);

            var popBackStackFragmentName =
                string.IsNullOrEmpty(attribute.PopBackStackImmediateName?.Trim())
                    ? fragmentName
                    : attribute.PopBackStackImmediateName;

            if (attribute.AddToBackStack)
                ft.AddToBackStack(popBackStackFragmentName);

            OnFragmentChanging(ft, fragment, attribute, request);

            if (attribute.AddFragment && fragment.IsAdded)
            {
                ft.Show(fragment);
            }
            else if (attribute.AddFragment)
            {
                ft.Add(attribute.FragmentContentId, fragment, popBackStackFragmentName);
            }
            else
            {
                ft.Replace(attribute.FragmentContentId, fragment, popBackStackFragmentName);
            }

            ft.CommitAllowingStateLoss(); 
```

### Expected behavior
When setting PopBackStackImmediateName in an attribute, the backstack should pop correctly.

### Reproduction steps
Set PopBackStackImmediateName to something, then try and close and notice the fragment will not pop.

### Configuration

**Version:** 7.1.2

**Platform:** 
- [ ] :iphone: iOS
- [X] :robot: Android
- [ ] :checkered_flag: WPF
- [ ] :earth_americas: UWP
- [ ] :apple: MacOS
- [ ] :tv: tvOS
- [ ] :monkey: Xamarin.Forms
