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

Closes #825.
Closes #460.
Closes #921.

refactor(tabs): added handling for when the tabs are initially hidden

refactor(tabs): switched to 0-based page indexes

refactor(tabs): wires up pagination to use $mdMedia rather than a hard-coded pixel size

In order to accomplish this, I had to move $mdMedia into its own file in the 'material.core' scope.

refactor(tabs): changes per Andrew's feedback

Renames `stretchTabs()` to `shouldStretchTabs()`
Uses `getElementsByTagName()` in place of `querySelectorAll()`
Uses cached version of `angular.element(tabs)`
Adds descriptive comment for `data.page` calculation

refactor(tabs): moves tabs definition to top of `postLink` method