Try to kill the threading bug that happens on tasks.
Rewrite QSTask.

- It's not a view controller anymore (yay!).
- QSTaskController is now the sole responsible of currently running tasks.
- Much simpler API.
Make QSTaskView a NSTaskController instead.

The XIB change is renaming QSTaskEntry to QSTaskView and updating the bindings to go through the new VC outlets.
Convenience class method.
Seems like that queue won't get used after all.
Rework how the task viewer keep tracks of the task views.

The XIB changes are :
- Binding the count text view at the bottom directly instead of using bindings + non-localizable text.
- Minor fix to the gear menu to kill the warning.
Bonus: Dispatch that so the notification gets sent later.

This removes `appTerminated` from stack traces.
Put the first and last tasks in the task started/ended notifications.
Remove the asserts because they get triggered spuriously by the catalog scanning process.
Dispatch *all* Process Monitor notifications to the main thread.
Fix auto-show/hide.
XIB update.

Just open it and close it ;-).
Use `NSParameterAssert` here.
Fix the bug with the infinite-length progress bar.
Our task window is a docking window.
Don't auto-hide if there are tasks running.
Silence debug logging.
Allow our window to dock correctly.
Make "Show TaskViewer" a toggle.
Set the window frame from the controller.