Dataset: Add support for indexed reading and writing

- complete support for slicing when doing indexed reading
- add support for indexed writing

Part of issue #16 (should be complete now, but docs are missing)