* The [Controller] for the Bottom Navigation View. Populates a [BottomNavigationView]
* with the supplied [Menu] resource. The first item set as checked will be shown by default.
* The backstack of each [MenuItem] is switched out, in order to maintain a separate backstack
* for each [MenuItem] - even though that is against the Google Design Guidelines.
*
*
*
* Internally works similarly to [com.bluelinelabs.conductor.support.RouterPagerAdapter],
* in the sense that it keeps track of the currently active [MenuItem] and the paired Child
* [Router]. Everytime we navigate from one to another, or [ ][Controller.onSaveInstanceState] is called, we save the entire instance state of the Child
* [Router], and cache it, so we have it available when we navigate to another [ ] and can then restore the correct Child [Router] (and thus the entire backstack)