Bugfix in read() function

I initially did ignore the stop argument, now it's taken into account.
Remove channels_first argument
Minor improvement to _check_frames_and_channels()