SampleBuffer: always sanitize start and end frame settings

An end frame variable always has to be greater than a start frame in
order to prevent crashes due to negative frame counts being calculated
in getSampleFragment() otherwise.

Closes #629.
SampleBuffer: more sanity checks in getSampleFragment()

Despite of the previously introduced sanitizing it still sometimes happens
that an end frame variable is not greater than the corresponding start
frame variable. Make sure we don't crash by adding more sanity checks in
getSampleFragment().

Closes #629.