Clear back stack on tab change.

Otherwise back stack retains history for all tabs together, which can result
in inconsistent state and unexpected behavior.  See [discussion here](http://stackoverflow.com/questions/6987334/separate-back-stack-for-each-tab-in-android-using-fragments).
This seems like an indirect way to clear the back stack. Essentially you're relying on no stack member to be equal to `null`, so it will continue to pop until none are left? I've never used these classes/methods before, and I'm frequently surprised to find the answer is "this is the android way of doing things" or "it's done this way for performance", so I could be off here, but I'd think this is more clear:
```java
boolean keepPopping = true;
while (keepPopping) {
    keepPopping = tabsFragmentManager.popBackStackImmediate();
}
```
or, condensed:
```java
while (tabsFragmentManager.popBackStackImmediate()) {
    tabsFragmentManager.popBackStackImmediate();
}
```