DataSet: replace ValueError with IndexError for invalid indices
DataSet: Add support for sliced indexing (reading data)
[test] Add new tests for DataSet's new sliced indexed reading
DataSet: extract index -> tuple logic into __index_to_tuple

We will reuse this then for __setitem__
DataSet.__index_to_tuple: integrate Ellipsis condition
DataSet: Add support for indexed writing of data
[test] DataSet: add tests for indexed writing of data

Don't need to test too much because most of the index -> count,
offset testing is done in the read test cases.
DataSet: Add __len__ and len() that behave like numpy
[test] Test for DataSet's __len__ method
DataSet: Add size property with the semantics like numpy
[test] DataSet: add test for size property
Merge pull request #38 from gicmo/dataset_index_read

Dataset: Add support for indexed reading and writing

Very nice, and thanks for the good explanations in the code, helped me allot.