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":""}
-->

Is there a specific exception we can catch instead of a catch-all?