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.
nit: at some point this should be modernized to:

    impl ContainerLayer<T> {
        fn new(...) -> ContainerLayer<T> {
            ...
        }
    }