First pass of refactoring, batch improvements and api updates.
There's still some work to be done, but this contains the majority of the changes. It's also likely to be a bit slower in some cases, but these should be easy to fix up. * Introduce a webrender_traits crate to reduce build times (only servo and compositor depend on the webrender crate now). * Support StackingContexts within Display Lists. * Proper paint order for iframes. * Much simpler (and more efficient) parallel batch creation. * Split code into multiple source files - naming of various structs and files still needs to be tidied up. * Change AABB tree to store items by draw list. * Batch creation now builds a maximum of 1 VBO/VAO per AABB tree node. * Moved internal display items (composite, clear) out of the public interface to an internal enum. * Split into high level Scene struct and mid-level Frame representation. * Switched draw lists to be managed by a free list, to reduce hash lookups. * Support clipping for text elements. * AABB tree now stores items that cross boundaries in multiple leaf nodes, and never in internal nodes.