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