More flexible sketch class generation
It would be nice if we could share functionality between sketches, and also if the sketch could be instantiated with user-supplied parameters. For this I suggest an alternative `defsketch` interface, while keeping the old one for simplicity / backward compatibility.

Example `defsketchx` interface (`x` is for "extended", maybe?):

    (defsketchx my-sketch (some-mixin-class another-mixin-class)
        ;; These can be passed by the user to make-instance
        (x (y 100))
        ((width 200)
         (height 400))
       (circle (or x 50) y))

Then instantiation might look like `(make-instance 'my-sketch :x 70 :y 120)`. Maybe `some-mixin-class` hooks into `draw` and always provides a black background.

The specific application I have in mind is having a `widgets-window` class that automatically creates a separate window with sliders/buttons to modify the `sketch` parameters.

    (defsketchx my-sketch (widgets-window) ()
        ((x (widget:slider 0 width))
         (y (widget:dropdown 10 50 100)))
      (circle (widget:get-value x) (widget:get-value y) 10))