refactor(tabs): adds support for non-fixed tabs

Closes #825.
Closes #460.
I am going to modify that commit, though - I removed the caching temporarily because it was not updating on resize.  I am re-adding now.