baseparse: Don't return more data than asked for in pull_range()

Even when pulling a new 64KB buffer from upstream, don't return
more data than was asked for in the pull_range() method and then
return less later, as that confused subclasses like h264parse.

Add a unit test that when a subclass asks for more data, it always
receives a larger buffer on the next iteration, never less.

Fixes #530

Part-of: <!733>
24 jobs for 1.16 in 9 seconds (queued for 3 seconds)
latest
Status Job ID Name Coverage
  Preparation
passed #6621600
gst indent

00:00:09

manual #6621599
manual
manifest
 
  Build
created #6621609
gstreamer
build cerbero cross-android universal
created #6621613
gst-ios-13.2
build cerbero cross-ios universal
created #6621610
gstreamer
build cerbero cross win32
created #6621611
gstreamer
build cerbero cross win64
created #6621608
gstreamer
build cerbero fedora x86_64
created #6621612
gst-macos-10.15
build cerbero macos x86_64
created #6621601
build fedora x86_64
created #6621607
docker windows 1809 allowed to fail manual
build msys2
created #6621602
build nodebug fedora x86_64
created #6621603
build static fedora x86_64
created #6621604
build static nodebug fedora x86_64
created #6621605
docker windows 1809
build vs2017 amd64
created #6621606
docker windows 1809
build vs2017 x86
 
  Test
created #6621614
gstreamer
check fedora
created #6621615
gstreamer
integration testsuites fedora
created #6621620
gstreamer
valgrind bad
created #6621617
gstreamer
valgrind base
created #6621616
gstreamer
valgrind core
created #6621621
gstreamer
valgrind ges
created #6621618
gstreamer
valgrind good
created #6621619
gstreamer
valgrind ugly
 
  Integrate
created #6621622
cross-android universal examples