Smaller stuff todo:
- implement input, output and aux properties to the Graph
- make it possible to change the operation of a node
- refactor OpNode to don't need a second constructor.
- have a way to access operation's enums (for example, in "fractal-trace")
- check (and test) the representation for complex graphs that embed smaller ones
(there is a test for a simple embedding already)
- Make the repr display other Graphs connected to the [input pad of the] first node 
of the current graph. Currently not displayed (maybe - check if this makes sense)

- Make Graphs pickeable (python serializable - probably customize this
                          to use gegl xml and pass the generated string
                        to pickle)
- check wether we actually need a separate Graph class (outer node actually needed)
- Add a way to include the documentation of gobjects into the Python __doc__s


Major stuff todo:
- import and export Graphs from XML
- being able to set up graphs as meta-operations
  *(requires GEGL hacking)


Done:
- a way to connect subgraphs to aux and input ports of nodes
    in other existing graphs
- fixed the representation for complex graphs
- translation of "_" to "-" when acessing gegl node
properties as Python properties
- input, output and aux in OpNodes now work as Python
properties that automatically connects Graphs, Nodes or
_gegl.Nodes assigned to them.
- Keeps consistency of the ._pads dictionary in opnodes in the _other_ operand
when connecting  pads.
- created a way to insert new nodes in the graph, taking care of the connections
- created a __setitem__ for gegl.Graph
- Basic Wrapping fot GEGL's Vector class
