Support for specifying page width for ScrollView.

Support for specifying page width for ScrollView.

This commit adds support for specifying page width for the `ScrollView` widget. This feature guarantees the current page will always be moved to the center of the scroll view when paging is enabled.

The page width can be set through `set_page_width()`. However, `page_width()` will always return the scroll view's width if the value is equal to 0 or greater than the scroll view's width.

A new `always_scroll_to_next_page_` property is added to indicate either the scroll action should stop gradually then move the current page to the center or it always scrolls to the next page.

The `WidgetWillRender()` method is renamed to `WidgetViewWillRender()` because it needs to move the position of the content view. Also, the method is moved from the `private` section to the `protected` so subclass has a chance to do additional work in this method.

The `Scroller` widget is also changed to not adjust the knob's position automatically. Now it shows the knob at the position whatever it takes.
Adjutsts some scroll parameters of the ScrollView widget.

This commit adjusts the animating acceleration and the factor for calculating initial velocity to make the scroll more smoothly. It also adds setter and mutator for changing the `animating_acceleration_` property and removes the constructor that taking `animating_acceleration` as initialization parameter.