PyDataArray: Add DataType -> numpy.dtype str conversion fn
PyDataArray: Add _get_dtype function
[nix.DataSet] Add type property that returns a numpy.dtype
[nix.DataSet] Use self.dtype in __array__ as dtype for the array
[test] Tests for Dataset.dtype
PyDataArray: Add count parameter to readData/_read_data

Change DataSet.read_direct to supply that count parameter (empty
tuple)
PyDataArray: Add offset parameter to readData/_read_data

Adapt DataSet.read_direct for it.
PyDataArray: Add count parameter to writeData/_write_data

Adapt DataSet.write_data for that change.
PyDataArray: Add offset parameter to writeData/_write_data

Adapt DataSet.write_direct() for the change.
PyDataArray: Extract common code into array_ensure_shape...
DataSet: Add single integer based indexing for reading data
[test] DataSet: Add test for single integer indexing
DataSet: support single Ellipsis indexing
[test] DataSet: Add support for single indexing

Also one test for unsupported indexing to keep coverage 100%