title: MvvmCross + Fragments + Back Button = Crash or controls not responding / bound
body: <p><strong>EDIT</strong>
  I originally was asking 2 questions as one and it wasn't clear, I'm editing it to focus on the more important issue.</p>
  
  <p>I have an application that is using a DrawerLayout as the FirstView (MvxFragmentActivity), and click the menu items on the drawer causes the content of the activity to switch to the associated Fragment (MvxFragment).  In one of the fragments, I have a Google Map that displays markers for information sites.  Everything works fine when the app first launches, or if I uses the menu to navigate.  But if I switch fragments, to say the company information page, and then hit the hardware back button (When each fragment is loaded, I call fragmentTransaction.AddToBackStack), and then try adding pins to the map, it does not actually add the pins.  From the digging I have been able to do, it seems that it is putting a duplicate layout into the fragment and I'm binding to the wrong one (the BindingInflate seems to be putting the duplicates). Here is my code:</p>
  
  <p>FirstView.axml:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:local="http://schemas.android.com/apk/res-auto"
  android:id="@+id/drawer_layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent"&gt;
  &lt;!-- The main content view --&gt;
  &lt;FrameLayout
      android:id="@+id/content_frame"
      android:layout_width="match_parent"
      android:layout_height="match_parent" /&gt;
  &lt;!-- The navigation drawer --&gt;
  &lt;Mvx.MvxListView
      local:MvxBind="ItemsSource MenuItems; ItemClick SelectMenuItemCommand"
      local:MvxItemTemplate="@layout/drawer_menu_item"
      android:id="@+id/left_drawer"
      android:divider="@android:color/transparent"
      android:dividerHeight="0dp"
      android:choiceMode="singleChoice"
      android:layout_width="240dp"
      android:layout_height="match_parent"
      android:layout_gravity="start"
      android:background="@color/white"
      android:listSelector="@drawable/menu_background" /&gt;
  &lt;/android.support.v4.widget.DrawerLayout&gt;
  </code></pre>
  
  <p>MapView.axml:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:minWidth="25px"
  android:minHeight="25px"&gt;
  &lt;com.google.android.gms.maps.MapView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/main_map" /&gt;
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>FirstView.cs (relevent parts anyways, based on MvxFragmentActivity demo from MvvmCross github):</p>
  
  <pre><code>    public bool Show(MvxViewModelRequest request)
      {
          Mvx.Trace(MvxTraceLevel.Diagnostic, "FirstView Show: {0}", request.ViewModelType.Name);
          var title = string.Empty;
          var section = ViewModelMapper.GetSectionForViewModel(request.ViewModelType);
          var fragType = ViewMapper.GetViewTypeForSection(section);
          if (IsCurrentFragmentTheGivenType(fragType))
          {
              return true;
          }
  
          title = GetFragmentTitle(section);
  
          MvxFragment frag = (MvxFragment)Activator.CreateInstance(fragType);
          var loaderService = Mvx.Resolve&lt;IMvxViewModelLoader&gt;();
          var viewModel = loaderService.LoadViewModel(request, null /* saved state */);
  
          frag.ViewModel = viewModel;
  
          var fragTrans = this.SupportFragmentManager.BeginTransaction();
          fragTrans.Replace(Resource.Id.content_frame, frag);
          if (!firstTime)
          {
              fragTrans.AddToBackStack(section.ToString());
          }
          fragTrans.SetTransition((int)FragmentTransit.FragmentOpen);
          fragTrans.Commit();
  
          return true;
      }
  </code></pre>
  
  <p>and in my MapView fragment code:</p>
  
  <pre><code>public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
  {
      var ignored = base.OnCreateView(inflater, container, savedInstanceState);
      var view = this.BindingInflate(layoutId, null);
      this.mapView = view.FindViewById&lt;MapView&gt;(Resource.Id.main_map);
      mapView.OnCreate(savedInstanceState);
      var map = mapView.Map;
      map.UiSettings.MyLocationButtonEnabled = true;
      map.MyLocationEnabled = true;
  }
  </code></pre>
  
  <p>I have tried it both with and without <code>this.RetainInstance = true;</code> and to no avail.  Any help would be greatly appreciated.</p>