Add OnStickyHeaderScrollOffsetChangedListener, allowing header appearance changes based on scroll position.

@emilsjolander, we have a design where the header is larger and contains supplementary info when it sits inline with the list view items, but when it hits the top sticky position it should resize down and fade out the supplementary info. This PR adds OnStickyHeaderScrollOffsetChangedListener to let consumers make these kind of updates. Demo:

![sticky-scroll-resize](https://cloud.githubusercontent.com/assets/631074/3320520/35b6d40a-f72b-11e3-9189-aa4eafb0d33c.gif)

Let me know what you think, particularly whether this messes up anything with the way the header views are measured and recycled.

Also some tools version updates as separate commits. I can remove these from the PR if you want.

@markrietveld FYI.
It doesn't set `mHeader`. It decides whether to pass `mHeader` instead of the `WrapperView`'s header when notifying of the scroll offset change. I believe it's related to how the header view is removed from the `WrapperView` when becoming sticky (and added back after). I found this necessary to get the sticky header to resize properly.