1. Added 'tolerance' config that determines flow of execution on
recieving errors.
2. Signature of setFlow() method changed to accept config.

Added tolerance config that determines whether to execute the next task
on an error, or should it wait for all errors/results before executing
next task.

Refactored to seperated manager from counter, so that decrement
operation on a non-current task (due to some async call) doesn't
influence the flow of execution.
Updated example and README. Added documentation.