[WIP] Test table api

Unfinished. Commit to get a review on changes I made to the Table constructor. For some reason types were not automatically being inferred from the call to discover(data) regardless of the kind of data. I could probably simplify this more by modifying the conditionals above the statement that I added. Relatively simply fix. 
If this shouldn't raise an error then we shouldn't make a test for it.

The proper thing to do here is to make your test above into a real test but then mark with with an `xfail` decorator (look through the code to find examples of this).  In general we want to avoid people writing correct code and finding an error raised.  This may confuse or frustrate them.  Prefixing this with an comment like you've done here is good; it assume that they'll make it this far though and actually read the comment.