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.

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.