Convience method to add nested/abbreviated triples to graphs (like Turtle)

Hi.

This is a suggested convenience method to allow adding many triples in one call. It is similar to Turtle's nested/abbreviated syntax, but in python.

e.g.:

    graph.add_nested( (self.michel, [(self.likes, self.pizza), (self.hates, self.cheese)]) )

Is the same as:

    graph.add( (self.michel, self.likes, self.pizza)  )
    graph.add( (self.michel, self.hates, self.cheese) )

This is inspired by the `` <Micheal> <likes> <pizza> ; <likes> <cheese> . `` turtle format.

And it can support adding ``BNodes`` if needed:

    graph.add_nested( (self.michel, self.likes, [(self.likes, self.pizza), (self.likes, self.cheese)]) )

Is the same as:

    new_person = BNode()
    graph.add( (self.michel, self.likes, new_person) )
    graph.add( (new_person self.likes, self.pizza) )
    graph.add( (new_person self.likes, self.cheese) )

This is inspired by the `` <Micheal> <likes> [ <likes> <pizza> ; <likes> <cheese> ] . `` turtle format.

All the logic is in ``rdflib.graph.expand_nested_triples``, and unittests are included.


why only lists or tuples? why not iterables in general and why not check with `if nested_triples:`?