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.