Provide a parse tree view to solve issue #12

Add a `tryParseTree()` method to `Parser`. The code has been tested against a relatively complex project of mine. The result is satisfactory to me. You can review the test cases to see the result.
Only last child? What if there have been multiple children in the current alternative?

``
`child.node("child").many().followedBy(x).or(anotherParser.node("another"))
  .node("parent")
```

Currently, backtrack happens in OrParser (and any other backtracking parsers), could we continue doing that?