AsyncTask completion callback replaced by event

Background
-----
Most consumers of ```AsyncTask``` derived classes do not need to know when a scheduled task is completed. Having a second parameter to ```AsyncTask``` constructor will require these callers to pass in a ```null``` value. As a better alternative, a separate event ```AsyncTask.Completed``` is introduced. Only callers that are interested in getting notified for task completion need to register their event handlers. Another benefit of having an event is that more than one handlers can be registered on a single ```AsyncTask``` object.

Changes
-----
1. Second parameter ```Action<AsyncTask> callback``` has been removed from ```AsyncTask``` constructor.
2. ```AsyncTaskCompletedHandler``` is introduced to replace the callback mechanism.
3. ```AsyncTask.Completed``` event has been introduced for task completion callback.

Testing
-----
- In the case of ```UpdateGraphAsyncTask```, verified that ```OnUpdateGraphCompleted``` is being called as expected.
- Test case ```AsyncTask00``` has been updated to reflect the signature change.

Hi @aparajit-pratap, please help taking a look. Thanks!