Squashed commits
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 };

Remove null-initialization of String::string.d in webvttxx/string

The previous commit makes this initialization unnecessary, and this
will remove clutter from the diff.

Remove cilanguage_unittest from XFAIL_TESTS (Closes #180)

I've decided to remove that test from XFAIL_TESTS in this pull request
as it seems to segfault without this fix.