bug in make_expectation

Related to #24. make_expectation now works with more types of
objects. For example, a data.frame previously lost its data.frame
attribute and was treated as a generic list. The test generated by
make_expectation would thus fail if run.

This patch is ugly. However, the current version of make_expectation does not work
on data.frames and worse it generates bad tests without giving an error. By bad,
I mean that the tests will fail. To see this, use the current version of make_expectation
on a data.frame.