Add a new find_layer_with_pipeline_and_layer_id method

This method will be used to eliminate a lot of the ad-hoc recursive
searches that are present in the compositor layer code.
Rename find_child_with_layer_and_pipeline_id

Rename find_child_with_layer_and_pipeline_id to
find_child_with_pipeline_and_layer_id so that it matches both the
logical and actual parameter ordering.
Eliminate ad-hoc recursion in set_unrendered_color
Eliminate iteration over Option types

This idiom has been dying out in new Rust code; it's especially
confusing for layers because there is a higher chance of making the
mistaken assumption that the iteration is occurring over multiple
layers.
Rename get_buffer_requests to send_buffer_requests_recursively
Remove ad-hoc recursion from add_child_if_necessary
Remove pointless layer lookup

We just created the root layer, so there's no point in trying to find it
again.
Eliminate ad-hoc recursion in add_buffers
Merge pull request #2784 from zwarich/cleanup-compositor-recursion

Cleanup compositor recursion