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.
Let's leave it out. Unless you have benchmark showing that it's significantly faster than or().

A hint, you can probably use ```a.or(Parsers.runnable())``` or some other combinations for the logging. I don't know how you want to recover from failed match so not sure what the right form is.