Fixed #4170 - Incremental reflow wasn't being aggressive enough when nodes get reparented.

When inserting a node that was already dirtied, the dirtying logic
would short circuit: "This node is already dirty? Great! Then its
parents must be HAS_DIRTY_DESCENDANTS, too! Let's skip that step."

This isn't appropriate when nodes move around the tree. In that case,
the node may be marked HAS_CHANGED, but ancestors may not yet have
the HAS_DIRTY_DESCENDANTS flag set.

This patch adds a `content_and_heritage_changed` hook in the document,
to deal with these cases appropriately.
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.
Rename gfx/render_task.rs -> gfx/paint_task.rs
Rename RenderTask -> PaintTask.
Rename canvas_render_task -> canvas_paint_task
Rename CanvasRenderTask -> CanvasPaintTask.
Rename RenderContext -> PaintContext
Rename RenderLayer -> PaintLayer
Rename RenderRequest -> PaintRequest
Rename RenderChan -> PaintChan
Rename gfx::paint_task::Msg
Rename compositor_task::Msg.
Rename RenderListener -> PaintListener, and its methods.
Rename RenderState -> PaintState
Rename IOCompositor's members.
Rename WindowMethods::set_paint_state()
Fix README.md: a tile size is used for 'painting'.
Rename RendererReadyMsg -> PainterReadyMsg