b=767710 move current motion calculation into InitSmoothScroll() r=roc

--HG--
extra : transplant_source : %E2%DCQu%13RdE%E9%3A%B3%B5L%21%8A3%3C%5D4%3F
b=767710 refactor AsyncScroll duration API so duration can be evaluated before resetting r=roc

--HG--
extra : transplant_source : %17Wc%17%5B%CF%A9n%C6%0BE%3Ez%21%CD%C6Q%20%10%26
b=767710 don't let additional events with the same destination restart smooth scrolling r=mstange

--HG--
extra : transplant_source : _%BA%CE%F1A%B7%40N%14VMZ%1D%2C%98Lg%40%F7%AF