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.


we don't really enforce 80 chars max, but most of the code tries not to run much over that... would be nice if you could break these down a bit