DataInteraction

This interface builds on top of ViewInteraction and should be the preferred way to
interact with elements displayed inside AdapterViews.

This is necessary because an AdapterView may not load all the data held by its Adapter into
the view hierarchy until a user interaction makes it necessary. Also it is more fluent / less
brittle to match upon the data object being rendered into the display then the rendering itself.

By default, a DataInteraction takes place against any AdapterView found within the current
screen, if you have multiple AdapterView objects displayed, you will need to narrow the selection
by using the inAdapterView method.

The check and perform method operate on the top level child of the adapter view, if you need
to operate on a subview (eg: a Button within the list) use the onChildView method before calling
perform or check.