[WIP] Test table coverage

I've added a few tests just so you guys can see my progress. I hope to have it fully tested today or tomorrow.
This one was tricky. I wasn't able to pass the first test of:

    if len(self.columns) != 1:

with the input of a TableSymbol without column names (i.e. `t = TableSymbol('t', int64')`, getting instead:

    TypeError: object of type 'NoneType' has no len()

It seems to me that I could rewrite this function that uses a different control flow expression than `if len(self.columns) != 1:` which would allow me to throw that attribute error. 

Again though, its a similar problem of whether we want to use expressions like Map and By for table symbols that do not have column names.