Refactor code. ATTENTION! Breaking changes

* Significantly specify custom listeners
* Rename detector classes
* Change type of a custom listener to the ScrollDirectionListener
* Make dectector implemnentation classes private