Spark Jobs now return a status

Make Jobs return status

-  The `SparkJobStatus` will contain the information whether a job was successful or failed.
- In case the job failed it will hold the underlining exception as `SparkException`. 
- Any exception that job does not catch will be thrown by job manager with `[SEVERE]` priority.
- This will allow the caller to show appropriate success / error dialogs.

@devoncarew 
Is this is closely related to the `jobs` library, we could move this into `jobs.dart`.