This commit continues the work done in #2057.
When hardware back button is pressed, we handle it accordingly:
1. If screen was pushed with `overrideBackPress: true`, we emit `backPress` event
2. Let `BackHandler` handle the event
3. If the event wasn't handled by `BackHandler`, pop the stack
4. let the system handle the event