extract tab moving to a delegate object

this allows for cleaner implementation and allows the user to supply
their own custom tab mover if they wish.
rename currentTab -> currentAction
pass the selected tab to the tab mover
remove z index from tabbar css

z index is now handled in javascript
add a default tab mover

This provides the standard tab moving behavior. It should be sufficient
for most use cases of horizontal tabs.
tweak tabbar example styling