Collection checks in modification callbacks.

Never let the selection be updated if the deleted or modified list
coming in is empty or doesn't contain any element in the selection.
Add FRX clear after the transaction is closed.
Implemented optional instrumentation for AsyncTask class
Introduced "TaskStateChangedEventHandler" into "DynamoScheduler"
Integrate task state change notifications to various scheduler parts
Integrated notification for cases when an AsyncTask is discarded
Tweaked exception handling around AsyncTask.HandleTaskCompletion
Handled "DynamoScheduler.TaskStateChanged" event in "DynamoModel"
Removed code around "AsyncTask.enableInstrumentation"
Moved "TestPreAndPostExec" test case out of "Failure" category
Added "TestTaskStateChangedEventHandling" test case for task events
Merge pull request #2565 from DynamoDS/SolarRadiation

MAGN-4201 Solar Analysis
Merge remote-tracking branch 'origin/master' into MAGN-5103_Partial
Move FRX flag reset to base class.
Added documentation for "DynamoScheduler.TaskStateChanged" event
Merge pull request #2832 from Benglin/Instrumentation

Enhanced scheduler to support task registration
Fix guid setting

1. Fix where the guid is set when adding a node.
2. This is based on the fix by Ben:
https://github.com/DynamoDS/Dynamo/pull/2028
Delete elements then modify elements.
Remove unused ElementMapping class.

This class was throwing exceptions that were causing the document
modification events to fail, and it is unused.
More comments and remove early bailout.