Decorator to defer and consolidate multiple canvas draws inside a method

This provides finer-grain control over the previous attempt to
delay and throttle draw calls. That led to noticeable stalls
Merge pull request #278 from ChrisBeaumont/deferred-draw

Decorator to defer and consolidate multiple canvas draws inside a method