Add an addOnDraw overload that uses std.typecons.scoped for the context.

Since the GC can keep a lot of Contexts alive before a collection cycle
starts, some memory and GDI/X11 handles arn't released when no longer
needed.
The Scoped overload destroys the Context at the end of the call
releasing there resources.