This commit removes NavigationOptionsListener as it was not needed anymore.
As a result, it uncovered a few issues which this commit also aims to fix.
* Set SideMenuController as parent of left, right and centre controllers
* Select tab by id with tabSelector interface
* mergeOptions now also applies options after merge - in ViewController base class
* Pull presentation logic from ComponentLayout to ComponentViewController
* Assign commandId to async commands
* CommandListener refactor
Pull listener out of Navigator and implement NativeCommandListener for native commands
* Emit onNavigationEvent when commands complete
* Rename timestamp to completionTime
* Rename NavigationEvent to EventEmitter
* Rename sendOnNavigationButtonPressed to emitOnNavigationButtonPressed
* Emit navigationEvent on bottom tab select
* rebase fix
* Emit commandCompleted event instead of nativeEvent
* fix native ios commands
* wait show and dismiss Overlay
Revert "Fixes NPE when initializing twice" (#3135)
* Revert "Fix custom top bar from disappearing after a push (#3109)"
This reverts commit 0e11b95f85.
* Revert "Fixes NPE when initializing twice (#3128)"
This reverts commit 0bf0751f5d.