Throttle with some other features

- Throttle function looks great! exactly same one as I used
- Added dynamic milestone option for scrolling
- Added lock for each milestone to avoid reaching hit limit

Note that I used these code in my platform with configurable GUI input,
so i can pass milestone setting and throttle delay as argument. I
havent tested in your plugin.