DataArray: Add an offset parameter to the internal API

- IDataArray: Add NDSSize offset and switch the data and count
       data parameter
- DataArrayHDF5: Adapt to new API and use Selection based API
       from DataSet
DataSet: Remove needless size param for selection overload

When we have Selections we only need the size of the data for the
string case anyway and there we can obtain it from the Selection
object.
DataArray: Implement random access to data

The [set|get]Data methods have an additional overload with and
offset parameter to control where to read/write at (cf. issue #56).
DataArrayHDF5: Only use the Selection based IO if needed

DataArray now calls IDataArray->[read|write] with a empty NDSize
for the offset parameter. In this case DataArrayHDF5 will use the
read/write overload from DataSet that don't take an Selection
parameters and therefore avoiding the creation of needless
Selections.
DataArray: Add public API to set the extent of the data
DataArray: new getData overload that infers the size to read
Merge pull request #62 from gicmo/random_data_access

Implement random access to data (issue #56)