Move logic for tiling from Servo into rust-layers

Pull in the quadtree implementation from Servo and rework the way that
tiles are stored in the layer tree. Instead of storing tiles in-tree,
simply hang them off of ContainerLayer separately. Also have
ContainerLayer templatized to hold arbitrary data, which will prevent
Servo from having to mirror the tree using Servo CompositorLayers.
Bummer that you need `pseudo_self`. The naming convention I usually use is `this`.

In a future version of Rust this will not be necessary. :)