Many setup improvements
Highlights:
- Introduce Operation class and a manager for it.
- Automatically show notifications for running operations.
- Make setup() method App level instead of module level. Drop setup_helper.
- Drop module level app property.
- Make force_upgrade method App level instead of module level.
- Allow running install operation on multiple apps at once with queuing.
This MR is a draft because it needs more testing.
Edited by Sunil Mohan Adapa