[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. 
IMO having some repeated code in tests is totally fine.  It's more important that someone can come back to this test and immediately see what went wrong rather than having to dive through a large file.