Work with lists of different height rows

* Allow custom OnScrollListeners to be attached to list view;
* Work properly with list of different height rows;
* Ignore tiny shakes of fingers, by using `min_significant_scroll`
Extract abstract `ScrollDirectionDetector` and `ScrollDirectionListener` classes

Also explaining why `estimateScrollY ` is deprecated. As agreed here: https://github.com/ViliusKraujutis/FloatingActionButton/commit/aa685d309cd0c4bc74c5727bb52afbecc704d54c#commitcomment-8066754
Update ScrollDirectionDetector JavaDoc
Remove old implementation of OnScrollListener which is not used any more
Add API methods back

There's no reason to remove `getOnScrollListener`,
but `getListViewScrollY` I'm marking as deprecated as it does not make sense to keep it here as ScrollDirectionDetector is now responsible for that.
Merge branch 'ViliusKraujutis-master'
Merge branch 'master' of https://github.com/makovkastar/FloatingActionButton