Fix possible crash(es) related to fragment manager state loss.

So, in a couple cases in our code, we perform transactions with the
FragmentManager from the result of AsyncTasks. This is technically
frowned-upon, since at that point the task has no way of knowing the state
of the Activity (whether its instanceState has been saved), which can lead
to an exception being thrown when we try to commit() a fragment
transaction.

Fortunately there is a function called commitAllowingStateLoss() which is
designed specifically for this purpose. Therefore I've split off the
functions that deal with fragment transactions, and gave them a parameter
to optionally allow state loss. Going forward, if we need to push a
fragment from an AsyncTask result, we should allow state loss, but *only*
in those cases.  In all other cases, the regular commit() function should
still be used.

Specifically, the cases where we now allow state loss (in this patch) are:
- Fetching a Random page.
- Going to the Main page after changing the Wiki language.

Bug: T75237
Change-Id: If01483bb4e8c3e699f668853b7f31b73c01c9e86