Added the function of scrolling by arrow keys.
1. Picked out most of the anonymous event handlers and assigned them to
variables so that when unbinding events the corresponding event handlers
will also be present and the unbinding will be specific to a certain
event handler instead of removing all event handlers of the same event.
2. Changed the way of telling whether the mouse cursor is inside the
wrapper element or not. The old way only works with webkit while the
present way works for others as well.
3. Changed the way of determining whether to hide the scroll bars or not
after dragging the wrapped element, dragging the horizontal bar or
dragging the vertical bar. The old way only works with webkit while the
present way works for others as well.