rm 'retain_newline' from string_getline() +more string test coverage

I've removed the 'retain_newline' feature from webvtt_string_getline()
as it was not able to deal with multibyte newline sequences (CRLF)
when spread across multiple buffers. Code in parser.c which uses this
has been updated to reflect this change.

The 'length' parameter has been changed to an unsigned integer in
several functions (I hope I didn't miss any), to allow negative values
to indicate that length can be determined by using strlen(), EG in the
case of string literals. This can simplify things in some cases.

Several string functions that potentially deal with string literals
can be told to figure out the length of the string automatically by
supplying a 'length' parameter less than 0.

I've updated string unittests to test both possibilities, for
functions which can make use of this feature.
Merge pull request #331 from caitp/fix-string

String API updates, stronger unit tests for updated features