Changes to Applet,Workflow,Shell,ProjectManager API:
- Shell: Removed convoluted logic for pushing/popping ControlCommands in response to applet.guiControlSignal
- Shell: Added Shell.setAppletEnabled
- ProjectManager: Now has a handle to the owning shell, passed in via __init__
- Workflow: Now has a handle to the shell
- Workflow: Subscribes to Applet.appletStateUpdateRequested, which triggers a call to Workflow.handleAppletStateUpdateRequested()
- Applet: GUIs are now instantiated with their parent applet as an __init__ arg.
- Applet: Removed Applet.guiControlSignal
- Applet: Added Applet.appletStateUpdateRequested signal.
  - Applets should emit the appletStateUpdateRequested signal whenever they are performing an operation that:
    - Requires upstream or downstream applets to be disabled or re-enabled.
    - Requires the project not to be closed.
  - Workflow subclasses should override Workflow.handleAppletStateUpdateRequested():
    - Inspect the state of each applet and it's top-level operators
    - Call shell.setAppletEnabled() as appropriate.
Updated DataSelection, DataExport and LayerViewer applets to recent shell/workflow/applet API changes.
(Also updated associated example workflows.)
PixelClassification: Updated to new shell/workflow API changes.
- Notify the workflow of state updates when entering/leaving interactive mode.
- Implemented PixelClassificationWorkflow.handleAppletStateRequested() to enable/disable applets depending on how much of the pipeline is configured.
ObjectClassification: Updated to new shell/workflow API changes.
 - Implemented ...Workflow.handleAppletStateRequested() to enable/disable applets depending on how much of the pipeline is configured.
Tracking: Updated to new shell/workflow API changes.
Carving: Updated to new shell/workflow API changes.
Counting: Updated to new shell/workflow API changes.
Updated remaining example workflows/applets to recent shell/workflow/applet API changes.
Made a minimal effort to port various legacy/unsupported applets and workflows to the recent shell/applet API changes.
These changes were not really tested.  These workflows would require some effort to resurrect, but that was already the case.
Merge branch 'applet-state-signal'

Conflicts:
	ilastik/applets/dataExport/dataExportApplet.py
	ilastik/applets/objectClassification/objectClassificationDataExportApplet.py
	ilastik/applets/pixelClassification/pixelClassificationDataExportApplet.py
	ilastik/workflows/examples/dataConversion/dataConversionWorkflow.py
	ilastik/workflows/pixelClassification/pixelClassificationWorkflow.py
Counting: Converted batch applet to be a subclass of newer DataExport applet instead of the deprecated BatchIoApplet.
PixelClassificationDataExport: Cleanup.
Removed old BatchIoApplet and all associated files.
DataExport: Renamed helper thread.