Make parentNode to be set in FakeWindow().

The parentNode of the child being appended wasn't being added when
appendChild() was being called. This meant that whenever we went
back up the tree of nodes in the parseContent() function current
would become undefined.
Move bad tag span tests over to new test harness.
Move cuetext timestamp span tests to new test harness.
ProcessingInstruction should return an object.

FakeWindow::ProcessingInstruction() should return an object in order to be
able to add properties and such to it. This was causing the "unable to set
'target' on undefined" bug in the timestamp tests.
Add tests/util/cue2json.js for creating test-ready JSON from parsed cues.
Fix tests failing on ProcessingInstruction nodes not having proper Node interface.