Merge pull request #276 from ChrisBeaumont/scatter-cleanup

Refactor scatter widget method
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
WIP Line profile viewer
Profile object picking
Spectrum mouse mode
Callback property decorator
WIP Spectrum tool