`wp_script_is( ..., 'enqueued' )` needs to check dependencies recursively - a single item's dependencies may only be a subset of the full dependency tree. Adds a new method on `WP_Dependencies` called `->recurse_deps()`. 

Adds unit test.

Props wonderboymusic, SergeyBiryukov, mikejolley.
Fixes #28404.

Built from https://develop.svn.wordpress.org/trunk@29252


git-svn-id: http://core.svn.wordpress.org/trunk@29035 1a063a9b-81f0-0310-95a4-ce76da25c4cd
`WP_Dependencies->recurse_deps()`: tuck the recursion into `elseif` so the `foreach` doesn't break on the first item.

See [29252].

Built from https://develop.svn.wordpress.org/trunk@29253


git-svn-id: http://core.svn.wordpress.org/trunk@29036 1a063a9b-81f0-0310-95a4-ce76da25c4cd