Ensure transactions cannot be run during controller state change

Bug 35349893

When the FragmentManager is being brought up or down, the state
of fragments is changed. Any fragment using commitNow() during
the state change was being allowed through instead of throwing.

This CL locks out reentrant fragment transctions during
FragmentManager state changes.

Test: ran fragment tests
Change-Id: Iead0e44cfc6515b044da1d1ebcad045d0a24b162
7 files changed