Changelog:
1. Fix a bug in `joint`.
2. Add an `optional` parser combinator, and make it accept optional default value.
3. Add `parsecapp`
4. Fix possible infinite loop when use an parser which can success with no text in nested `times/many` combinator.
5. Demonstrate how to return result via raising `StopIteration` in generator for pre-3.3 version of Python.