carousel widget and demo of image viewer

Carousel widget has selection working.
And I've build a proof of concept image viewer (select image with carousel, update other image with selection).

I know that that configuration is common enough that we probably want to create an ImageViewer widget that encapsulates what needs to be done to set it up.

There is 1 issue I haven't figured out yet. It seems that updating the div in the foreignObject doesn't cause it to re-render. It will re-render if you scroll it away and back.