Move node declarations to their own header files.

I've moved the node declarations to their own header files. This makes it a
litte more organized.
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
Alphabetize source file list.
Merge pull request #4 from rillian/node

Node
Merge pull request #242 from RickEyre/move-headers

Move node declarations to their own header files.