Make compositing generic over layout_task

This will allow breaking the layout -> compositing dependency
Break the layout -> compositing dependency

This adds a new layout_traits component for the shared trait.
This should allow for faster builds.
Merge pull request #2885 from arielb1/remove-compositing-layout

Break the compositing -> layout dependency
Add rust-url as a submodule and a Makefile for it.
Start dogfooding rust-url. Fix #1673.
Hard-code resource task loaders. They never change.
Move about: URL handling from parsing to loading. Fix #1094
Percent-decoding also applies to base64 data: URLs.
Don’t drop whitespace in data: URLs. FromBase64 already skips newlines.
Only interpret URL as filenames in command-line arguments.
Remove UrlMap<T>, just use HashMap<rust_url::Url, T>
Move is_image_data() where it’s used.
Used rust-url directly instead of servo_util::url

The latter now only calls the former.
Remove the now unused servo_util::url module.