[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. 
To my aesthetics, something like the following is easier to understand at-a-glance

    t = Table(L, columns=['id', 'name', 'balance'])
    expr = t[t.balance < 0]
    assert len(list(compute(expr))) == len(expr