add first cut at TabBar widget

It does not yet support movable tabs. I'm inclined to think that such
functionality should not be included by default, as it requires
assumptions about layout and geometry.