Update FrameTree pipelines when appropriate

Instead of simply creating a new FrameTree when an iframe starts a
load, update the existing FrameTree's pipeline. This prevents the
FrameTree from accumulating many extra children.
Add FrameTree::add_child

This helper method simplifies a few lines.
Notify compositor when a FrameTree changes pipelines

When the constellation change a FrameTree pipeline, it should send a
notification to the compositor, so that it can negotiate buffers from
the correct render task. This commit also migrates away from the
generalized FrameTreeUpdateMsg to ones specific to the situation at
hand. That turned out to be an unnecessary abstraction.
Only send SetLayerRect messages for compositor-backed frames

Only send SetLayerRect when we know that a frame has a compositor
layer. If it doesn't, we wait until we send the new layer to the
compositor.
auto merge of #4314 : mrobinson/servo/iframes-2, r=pcwalton

iframes added or loaded via script are not reflected visibly in the content of a page. The next step in making this happen is to have compositor layers accurately reflect newly recreated or loaded iframes. This change allows iframes to appear, but there are still some further changes necessary to make the output correct and reliable.