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

Should it raise an error if both dshape and schema are provided?