Raise TypeError instead of looping forever

Something like
```
>>> X = DeferredVector('X')
>>> Matrix(X)
```
should raise TypeError instead of Running forever into an infinite loop.