Scroller: if duration of throwTo() is 0, only calls completeScroll() if the position has actually changed
Scroller: scroll bar is not revealed on mouse wheel listener because it will be revealed in throwTo() again. this also fixes situation where scroll position hasn't changed and the revealed scroll bar wasn't hidden
BitmapFontTextEditor: refactored restrict implementation out to a utility class so that other text editors can use it.
BitmapFontTextEditor: refactored some keyboard navigation functions out to a utility class so that other text editors can use them
TextBlockTextEditor: initial partial implementation with known bugs.