Make `has_shortcode()` recursive/work for nested shortcodes.

Adds unit test.

Props katzwebdesign.
Fixes #26343.

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


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