Background Executor to execute long running tasks

New feature:

- Added BackgroundTask to wrapp long running processes, and BackgroundExecutor to handle these tasks.
- BackgroundExecutor hooked to Controller

Tests:

- Test for BackgroundExecutor
- Demo to show that UI doesn't freeze while a background task is processed