Fix reading of layers that don't support counting

Re-enables reading layers that don't support counting.
* Raise TypeError on __len__
* Check slice start/stop indices for negative values and raise