Draw timing

- Drawsteps now execute in sequence, asynchronously; they wait for the previous draw step to finish before starting the next one
- Draw now returns the total time taken for all draw steps
- additionalPaint now recieves max time taken across drawers (ie duration of paint fn)
- Animators have a `getTiming` method which returns time to complete animation.
- Drawers return how much time they will take to finish drawing

Maybe it is better to set all future draws at once, which means `setTimeout` will be set to sum of previous animations.
I think if second draw step fail we will still have a chance to draw another one, but not with current apporach.