Fix/moving window

This pull fixes some moving-window related issues.

### Empty data sets

Don't throw an assert if we request to read a (x,y,z) data set with x||y||z==0. This indeed *is* the correct meta information for a data set that was intended to be written as *empty*.
The corresponding *hdf5* response is a (1,1,1) data set without information.

Mixing this up with a *real* (1,1,1) data set can be avoided, since we *know* that we already *requested* the data set x*y*z=0 .
```c++
const bool empytRequest = ( data_size.getScalarSize() == 1 &&
                            client_domain.getSize().getScalarSize() == 0 );
```

### Allow clock systems for domain offsets (Test intersection algorithm)

If the domain offsets are ordered in a [clock system](http://en.wikipedia.org/wiki/Modular_arithmetic) instead of starting with (0,0,0) at file (0,0,0), this patch allows to read them.

First, the file with the (0,0,0) has to be found. Afterwards, the same divide&conquer algorithm looks for the top-left corner, but only in the "upper" or "lower" volume, as seen from the (0,0,0) file.

At the end, the real read algorithm will walk over an "optimal" number of files for requested *contiguous cuboids* as before, but cuboids can now span over the mpi_size - 1 limit in a periodic manner.