Widget fixes

Various widget framework fixes.  Found during IPython workshop in Vicksburg, Mississippi.

Pinging @ellisonbg since this is his branch.