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

Why this change?