Merge pull request #175 from caitp/issue-175

Update webvtt_string_append to use a signed integer for length that uses strlen if negative.
Fixes #166 - Implemented unit tests for webvtt_string_is_empty

Implemented tests for webvtt_string_is_empty and String::isEmpty,
which tests both that we return true when the length is 0, and false
when the length is greater than 0.

I found during these tests that we do are not initializing strings
correctly in the C++ bindings, which can easily lead to segfaults.
Perhaps the webvtt_init_string and other routines should be changed to
behave differently, but currently the string to be initialized must be
0 to begin with, otherwise it will be dereferenced which can cause
problems.
Rebased against mozilla:dev, String functionality changes

webvtt_init_string and webvtt_copy_string no longer try to dereference
the old string data, and no longer check if old string data exists at
all. This means that you must now release valid strings prior to
init/copying/creating them, and we no longer encounter certain
uninitialized variable issues and are no longer required to initialize
string variables with { 0 };