Introduce Graph as a first step towards supporting named graphs in parsed documents

Furthermore, NodeInterface was created so that more specialized nodes can be created in custom implementations.

This addresses #15.