Current bsdgrep(1) behavior when given a negative -A/-B/-C argument is to overflow the
respective context flag(s) and thus exhibit surprising behavior. Fix this by removing
unsignedness of Aflag/Bflag and erroring out if we're given a value < 0. Also adjust the type
used to track 'tail' context in procfile() so that it accurately reflects the Aflag value rather than overflowing
and losing trailing context.
This also fixes an inconsistency previously existing between -n and -C "n" behavior. The former
was previously limited to less than ULLONG_MAX, while the latter could attain up to ULLONG_MAX.
They are now both limited to LLONG_MAX, to be consistent.
For this, we add some test cases to make sure grep errors out properly for both negative context values as well
as non-numeric context values rather than giving bogus matches.