Fix bugs in cow_multipart:parse_body/2 when a partial was found at the end

There was three bugs: lack of a scope argument in binary:match (I swear
I had it in a previous version, whoops!); a misinterpretation of
the returned position when the scope is used (so yeah it wouldn't
have worked either way); \r\n being incorrectly removed when
we got a partial, despite not knowing whether it was a boundary.

Added a series of different tests to ensure that it all works as intended.
Updated cowlib to 0.5.1

Fix multipart body reading. Thanks to Ali Sabil for the many tests
and reports.