Updated BackgroundTaskManager to use a single thread pool for save requests in order to guarantee correct ordering of saves. BackgroundTaskManager also uses its parent frame reportException method instead of the static ErrorHandler. Added isEmpty method to Workspace.