Task graph completion

Added a delegate protocol for graph for determining if all a graph’s tasks are complete or a single one fails. Also removed the task state change delegate method. KVO should be used to monitor changes to state. Finally, updated the example app to take advantage of the graph delegate protocol.
Sort of hate it, sort of fine with it. Suggestions welcome.