enhance(ripple): adds support for non-fixed tabs

Closes #825.
Closes #460.
IMO, the name should somehow make it obvious that this is a function (e.g. `getSelectedIndex` or `selectedIndexFn`).
It makes it more clear/maintainable, when using in different contexts (e.g. requiring directives).