Clean up App delegate

Various tasks

- Clean up unused methods and properties
- Remove properties that are only ever set to one state
- Remove unnecessary imports
- Add NotificationsManager to handle all push notification related tasks
- Organize the file and make application:didFinishLaunchingWIthOptions: really short for clarity.
- Defer a few more tasks to the global background queue