Fix bug of TextInput.adjust_vertical(1) always moving to the end of text.
Implement Page(Up|Down) functionality for TextInput.
Fix bug of TextInput.adjust_horizontal causing stack overflow or wraparound

When the edit_point is in the first position of a multiline TextInput
adjust_horizontal(-1) moves the edit_point to the end of the first line.
When the first line is empty this causes a stack overflow. When the edit_point
is in the last position adjust_horizontal(1) causes a stack overflow.
auto merge of #4267 : ema-fox/servo/textinput, r=jdm