Swap: do init 'on demand' so that state can be accessed earlier in component lifecycle

See https://github.com/dart-lang/web-ui/issues/226
Tabs now composes Swap

Closes #9