Add management of head in copy ctor and =operator.

I've added proper management of InternalNode *head to the Cue
C++ node binding's copy constructor and assignment operator. It just
uses the default copy constructor for InternalNode as we really only
need shallow copies of the objects.
Add deep copy ctor and default node ctors.

- I've added a deep copy constructor for the InternalNode C++
binding. This way when an InternalNode is copied its internal
node list gets copied as well.
- I've also added default constructors
for all the Node objects in order to be able to have a default
 safe state.
- I've changed the cue copy constructor to either copy the
InternalHead of the copied object if it is valid or assign it
null if it is not.
- Finally I've removed the capability for Nodes to have parents.
This code was not being used and it was not fully implemented.
Add pointer checks in InternalNode::createNodeList().
Merge pull request #84 from caitp/trailing-whitespace

Trailing whitespace
Merge pull request #66 from RickEyre/issue-50

Add management of head in copy ctor and =operator.
Separate parser into different functions

Adding infrastructure to split the parser into separate functions,
made re-entrant via a callback stored on the stack.

Currently implementing a quick one as a demo to deal with parsing the
header.
Splitting main parser into separate components

Have completed webvtt_parse_header, moving onto webvtt_parse_body,
webvtt_parse_id, webvtt_parse_settings, webvtt_parse_cue, and others.
Parser split into subroutines to simplify logic

Main parser function in parser.c has been split into a number of helpful
subroutines in order to be more readable and potentially allow us to test
individual parser functions without requiring us to test an entire parser
run.

In addition to this, lots of tests are now passing.
Various fixes and adjustments

-- webvtt_release_string no longer references empty_string, so that
empty_string refcount shouldn't grow ad infinitum when strings are
being released.

-- adjustments to test_parser to ensure that they abort parsing when
a fatal error is reported.

-- related to above, parser does not give up on certain fatal errors
unless the error callback asks them to. (This decision is debatable,
so lets talk about the pros and cons)

-- adjustments to various parser routines to ensure that tests will
pass (They will not pass with this submission as I have not included
changes I've made to the C++ bindings, which should be addressed in
@RickEyre's pull requests.
Remove CALLBACK_DATA and CALLBACK_SETUP macros

While still using 'goto __final' in a few areas of the code, it is
now explicit and not hidden by a macro.
Remove unused "webvtt_read_id" routine from parser.c

Removed unused routines, updated parser_internal.h to match the
currently used parser routines.