Reworking DocumentParser to be an interface using defenders (default
methods)
Allows the implementation of a parser without helper classes.
Merge remote-tracking branch 'upstream/master'