Overload `__len__` to work on Table Expressions and on Table interactive objects

In the case of pure expressions TableSymbols are now defined by their dshape, not just their schema.  Operations which are able to reason about lengths do so (rowwise, head, sort, etc...)

In the case of Table, or expressions which contain data resources this overloads `self.__len__()` to `compute(self.count())`

cc @JosephCottam

<!---
@huboard:{"order":374.8125,"milestone_order":473,"custom_state":""}
-->

It might be useful to include the dshape, or at least the first dimension of the dshape as a breadcrumb in the error message to provide some more context.