Add mechanism to parse CueText into tree of Nodes, and walk tree with Observer pattern

The Node tree parsing should be fairly simple, however I'd like to provide a simple API for walking the Node tree using the Observer pattern, so that the usability is nicer.