Extract abstract `ScrollDirectionDetector` and `ScrollDirectionListener` classes

Also explaining why `estimateScrollY ` is deprecated. As agreed here: https://github.com/ViliusKraujutis/FloatingActionButton/commit/aa685d309cd0c4bc74c5727bb52afbecc704d54c#commitcomment-8066754