Added online subsampling capabilities.

Plus unittests and extensive docstrings.
Updated ringbuffer to use Data instead of [data, markers]

* RingBuffer takes time in ms instead of length
* Added and updated various tests
* Updated docstrings
Fixed segment_dat for newsamples == 0
Added __str__ for Data
Fixed bug in Data.__eq__ => implemented __ne__ as well
Better test for equality.
Added test for copy.
Revert "Return an empty array with the correct number of dimensions."

This reverts commit 5a45b0470ff9a14eebead06d4bd38a05f406c86f.
Empty Data => .data == np.array([]) (.size == 0)
Added __nonzero__ for easy checking if Data is empty.
Fixed docstrings for Data and Ringbuffer classes.
Document how stupid append is.
Fixed append for negative axis values.
Fixed bug in segment_dat which would sometimes not recognise segments if the
respective markers are very close to the next element in `timeaxis`.

Updated tests and added more comments to explain the tests.
Revert "Added online subsampling capabilities."

This reverts commit b1a581d917c638d563cb7e1a792716fc0f86d1d6.
Updated docs for processing to give examples for online settings.
Fixed append_cnt to deal with timeaxis and markers correctly.

Updated tests and docstrings.
Added BlockBuffer

+ unittest
+ docs
Changed logging errors to warning when losing markers or samples.
Removed superfluous import