BUG: Fix pointer location in file

@leggitta @agramfort @cjayb
In reviewing the brainvision converter, I realized that there was an error in the edf module that was not detected in any of the tests and I missed in review. 
It is the pointer location of the data when it is being read in segments. When the file is preloaded, the problem doesn't exist, but it secretly manifests itself when preload is False in the `_read_.segment` The `test_read_segment` was supposed to catch this but it did not. I don't know if it is due to the fact that it used `assert_array_almost_equal`. I'm trying to understand why there would be a difference when the data are reread. What is the precision of the data when it is written? The values shouldn't change from each read, right? 
I'm sorry about this. I tried to safeguard against such an error but it still happened. :(