Add #componentsWithProp and #textComponent.

* componentsWithProp: changes subject to all descendent components with
a specific prop (and specific value if desired).
* textComponent: asserts that a component in the three exists with the
given text. A non-text component with only text as its child will not
have a proper text component as a child, instead it will just have {
children: “text” } as a prop. The textComponent method handles both
cases (actual text components and components with only text as a child).