Add string helper functions to assist unit tests with multibyte encodings

Added routines to C library:

webvtt_next_utf8

webvtt_prev_utf8

webvtt_skip_utf8

webvtt_utf8_to_utf16

These are used by the C++ library to allow us to access the Nth utf16
character at some index.

This could also be easily extended to support utf32 if needed.

These routines are not perfect yet, so review review review.
Made constant local variables 'p', 'pc', and 'first'

Byte pointers on string.c (lines 457, 477, 496, 504, 519) needed to be
made constant.

Also there was an unclosed brace in utf8_to_utf16, that has been fixed.
Fixed comment

 /**
 -* webvtt_next_utf8
  *
 -* move the 'prev' pointer to the beginning of the previous utf8
  * character
  * sequence.
  */
 /**
 +* webvtt_prev_utf8
  *
 +* move the 'end' pointer to the beginning of the previous utf8
  * character
  * sequence.
  */
webvtt_prev_utf8 now adjusts char pointer if possible.

Previously, this function did not make any changes to the string position
pointer. This has been corrected.

In addition, the if statement on line 508 has been adjusted to compare *pc
& 0xC0 rather than *p & 0xC0
webvtt_prev_utf8 -- Removed inner loop, fixed comparison

Now, changing the char pointer 'end' depends only occurs when the new string
position is in the middle of a utf8 multibyte sequence or not, eg
( *p & 0xC0 ) != 0x80 )
Added string unit tests, removed webvtt_prev_utf8 routine

Removed webvtt_prev_utf8 routine and ability to skip backwards with
webvtt_skip_utf8. The reason is because it was difficult to make these
work consistently with forward skipping, and seems unlikely to be used
anyways.

Have written some basic unit tests for the new string routines. More
of these are needed (EG to ensure that these things work for all the
different lengths of UTF8 sequences)

TODO:
 - unit tests for different utf8 sequence lengths
 - unit tests for C++ string wrappers
Added additional wrappers to C++ library

C++ bindings now can get a 32bit codepoint at a given index, and has
helper routines to convert between utf16 and utf32.
Case correction, added comment

Corrected case (Test fixture named STRING now named String)

Added comment above string_unittest_SOURCES in test/unit/Makefile.am
Fixed typos, renamed routines, added additional tests

Corrected typo: method isSurrogteLead -> isSurrogateLead

Renamed webvtt_utf8_count() to webvtt_utf8_chcount()
Also renamed String::count() to String::charCount()
These changes should help prevent some confusion, because
"length" and "count" seem just about synonymous.

Added some additional tests for working with UTF16
surrogate pairs.