feat(subheader): add subheader component

This implements #216.

As per suggestion from @matsko, uses native position: sticky when possible, otherwise uses a javascript implementation using the new $materialSticky service.

A new directive material-sticky is also exposed, which uses the $materialSticky service.

This pull request also makes the material-subheader create a h2 for accessibility purposes as per @marcysutton's suggestion. Subsequently, it ups the h2 and h3 in material-list-item to h3 and h4 respectively.

Commit messages have been squashed

Would love suggestions from @ajoslin on ideas for testing $materialSticky service, or anyone else who has ideas.

Also does anyone have opinion on whether we want to document material-sticky directive / $materialSticky service for usage on the docs?

That depends on `checkElements` existing for each sticky container. I'd rather keep the memory footprint smaller by using the `$container.data` -- if you're opinionated on it, I'm happy to change it, just my initial thoughts.