include model/graph?

Do you think can be useful to have a minimum definition what a model (maybe a graph) looks like in memory?

This pull request includes a very initial draft, open to discussion, of course.
Will merge this to get this set of changes cleaned up, and open an issue to discuss deleting it, per Andy's comments. Personally I don't think it is necessary in a minimal API, as it is fairly easy to wrap in user code.