Support for toggling between horizontal/vertical tab placement

Added support for toggling between horizontal and vertical tab modes.
Currently it supports only left and top tab placements.

The current behaviour is as follows :

* Expands all the tabs when switching from vertical tab placement to
horizontal tab placement.
* Restores the tab hierarchy when switching back to vertical tab
placement.

fix for issue #2 
make `final`