added webvtt_status to file_bytes
Merge branch 'file-bytes' of https://github.com/ShayanZafar/webvtt into file-bytes
WEBVTT_SUCCESS instead of WEBVTT_NO_MATCH_FOUND
Correct CueSettingAlign.BadDelimiter test

Was asserting for error INVALID_CUESETTING_DELIMITER, however we've
decided that instead this should return WEBVTT_INVALID_CUESETTING as
"align;" is technically not a valid keyword. Also updated comments,
linewrapping, and ensure that errorCount == 1 before trying to get the
error.
Merge pull request #234 from caitp/error-macros

Update ERROR macros to provide some additional convenience
Merge pull request #235 from caitp/align-bad-delimiter

Correct CueSettingAlign.BadDelimiter test
Remove unused d var from copy_string_list func.
Merge pull request #231 from caitp/token-helpers

Implemented helper routines to assist in cueparameter parsing
Merge pull request #240 from RickEyre/fix-copy-string

Remove unused d var from copy_string_list func.
Merge pull request #226 from ShayanZafar/file-bytes

added webvtt_status to file_bytes
Add assertion macros to parser_internal.h

I've implemented 2 macros:

1) SAFE_ASSERT( condition )
   This will simply evaluate to an assert() from assert.h if
   FATAL_ASSERTION is defined, otherwise it returns a webvtt_status
   WEBVTT_FAILED_ASSERTION which should end up aborting parsing and
   print an error message to console.

2) DIE_IF( condition )
   Unlike SAFE_ASSERT(), this evaluates to nothing/no-op if
   FATAL_ASSERTION is not defined, and is primarily a debugging
   tool.

These can trigger breakpoints if building with -DBREAK_ON_ASSERTION is
defined, using ::DebugBreak on windows and a null-dereference on other
systems. (Note that the null-dereference will just crash an
application if it's not being supervised by a debugger, and so this is
naturally not an appropriate default flag to use, only good for
debugging.)

These make use of a new webvtt_status, described above,
WEBVTT_FAILED_ASSERTION

Define NDEBUG by default, undefine it if FATAL_ASSERTION defined
Merge pull request #230 from caitp/safe-assert

Implemented safe assertion API to assist in debugging errors.
CueSettingAlign tests passing 100% (Blocking on #230, #231, #234)

Hacked parse_cueparams to call `webvtt_parse_align()' when it's read
an 'align' cuesetting keyword.

Passes all unit tests:

```
Running main() from gtest_main.cc
[==========] Running 13 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 13 tests from CueSettingAlign
[ RUN      ] CueSettingAlign.Start
[       OK ] CueSettingAlign.Start (0 ms)
[ RUN      ] CueSettingAlign.Middle
[       OK ] CueSettingAlign.Middle (0 ms)
[ RUN      ] CueSettingAlign.End
[       OK ] CueSettingAlign.End (0 ms)
[ RUN      ] CueSettingAlign.Left
[       OK ] CueSettingAlign.Left (0 ms)
[ RUN      ] CueSettingAlign.Right
[       OK ] CueSettingAlign.Right (0 ms)
[ RUN      ] CueSettingAlign.BadKeyword
[       OK ] CueSettingAlign.BadKeyword (0 ms)
[ RUN      ] CueSettingAlign.NoKeyword
[       OK ] CueSettingAlign.NoKeyword (0 ms)
[ RUN      ] CueSettingAlign.BadValue
[       OK ] CueSettingAlign.BadValue (0 ms)
[ RUN      ] CueSettingAlign.NoValue
[       OK ] CueSettingAlign.NoValue (0 ms)
[ RUN      ] CueSettingAlign.BadDelimiter
[       OK ] CueSettingAlign.BadDelimiter (0 ms)
[ RUN      ] CueSettingAlign.NoDelimiter
[       OK ] CueSettingAlign.NoDelimiter (0 ms)
[ RUN      ] CueSettingAlign.UppercaseKeyword
[       OK ] CueSettingAlign.UppercaseKeyword (0 ms)
[ RUN      ] CueSettingAlign.UppercaseValue
[       OK ] CueSettingAlign.UppercaseValue (1 ms)
[----------] 13 tests from CueSettingAlign (1 ms total)

[----------] Global test environment tear-down
[==========] 13 tests from 1 test case ran. (1 ms total)
[  PASSED  ] 13 tests.
```
CueSettingAlign tests passing 100% (Blocking on #230, #231, #234)

Hacked parse_cueparams to call `webvtt_parse_align()' when it's read
an 'align' cuesetting keyword.

Passes all unit tests:

```
Running main() from gtest_main.cc
[==========] Running 13 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 13 tests from CueSettingAlign
[ RUN      ] CueSettingAlign.Start
[       OK ] CueSettingAlign.Start (0 ms)
[ RUN      ] CueSettingAlign.Middle
[       OK ] CueSettingAlign.Middle (0 ms)
[ RUN      ] CueSettingAlign.End
[       OK ] CueSettingAlign.End (0 ms)
[ RUN      ] CueSettingAlign.Left
[       OK ] CueSettingAlign.Left (0 ms)
[ RUN      ] CueSettingAlign.Right
[       OK ] CueSettingAlign.Right (0 ms)
[ RUN      ] CueSettingAlign.BadKeyword
[       OK ] CueSettingAlign.BadKeyword (0 ms)
[ RUN      ] CueSettingAlign.NoKeyword
[       OK ] CueSettingAlign.NoKeyword (0 ms)
[ RUN      ] CueSettingAlign.BadValue
[       OK ] CueSettingAlign.BadValue (0 ms)
[ RUN      ] CueSettingAlign.NoValue
[       OK ] CueSettingAlign.NoValue (0 ms)
[ RUN      ] CueSettingAlign.BadDelimiter
[       OK ] CueSettingAlign.BadDelimiter (0 ms)
[ RUN      ] CueSettingAlign.NoDelimiter
[       OK ] CueSettingAlign.NoDelimiter (0 ms)
[ RUN      ] CueSettingAlign.UppercaseKeyword
[       OK ] CueSettingAlign.UppercaseKeyword (0 ms)
[ RUN      ] CueSettingAlign.UppercaseValue
[       OK ] CueSettingAlign.UppercaseValue (1 ms)
[----------] 13 tests from CueSettingAlign (1 ms total)

[----------] Global test environment tear-down
[==========] 13 tests from 1 test case ran. (1 ms total)
[  PASSED  ] 13 tests.
```