Merge pull request #234 from caitp/error-macros

Update ERROR macros to provide some additional convenience
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.
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