baseparse: When creating buffers, set sensible end offset
When baseparse creates sub-buffers, it can and should ensure that the buffer end_offset is sensible and matches the start offset plus the buffer size.
This fixes a regression since e906197c where output buffers would have no end offset, but there are still cases where sub-classes create sub-buffers and push them with incorrect offset. In those cases, the sub-classes should set the offset.
Fixes #548