This commit includes two major changes
1. Move all calls to private react-native API to a single class and
change access modifier of the ReactRootView to private.
2. Hide soft keyboard when a view is removed from screen. This
potentially fixes a bug we encountered internally where react
failed to render the shadow DOM properly, when popping a screen
while the soft keyboard was displayed.
When starting new activity after previous activity showed modals
and did not dismiss them. The modal controller still had
registered modals even though we can't go back in the activity stack.
Since Toolbar icons' height is set according to Toolbar height,
We need to ensure the call to `setupToolbar` from `onCreate` is
called after the Toolbar is measured.
navigatorEventID was generated from navigator, probably by mistake.
This caused a bug which was noticeable when showing modals from
a pushed screen. In this case two components shared the same
navigatorEventID thus they both responded to events from native.
* Due to race condition when showing modal, buttons were added to
previous Toolbar.
* Minor refactor, moved `updateStyles` from BaseReactActivity to
StyleHelper class since it's now also used by RnnModal