Return errors for empty text fragments (#29)
This fixes two issues:
1. Fragments with only context lines were accepted
2. Fragments with only a "no newline" marker caused a panic
The panic was found by go-fuzz. While fixing that issue, I
discovered the first problem with other types of empty fragments while
comparing behavior against 'git apply'.
Also extract some helper functions and modify the loop conditions to
clean things up while making changes in this area.
authored by