Squashed commit of the following:

commit 88db421d27a32f35ef0d80eeba1b856d52ff284b
Author: Roman Joost <roman@bromeco.de>
Date:   Sun Jan 13 13:50:05 2013 +1000

    Use the new dependency builder to create references

commit 176a3d859f32fe97fbb72a84e882802281996900
Author: Roman Joost <roman@bromeco.de>
Date:   Sun Jan 13 13:12:21 2013 +1000

    Help appending nodes/edges

commit 21e83fc3ba79023d67ffea7d014fe9ba8f4a72f5
Author: Roman Joost <roman@bromeco.de>
Date:   Sun Jan 13 12:59:30 2013 +1000

    No need for a separate class

commit 3e31acd7152bc7e8913194c8ddc399645423ecfe
Author: Roman Joost <roman@bromeco.de>
Date:   Sun Jan 13 12:53:16 2013 +1000

    Need this thing on a visitor, not per graph

commit a7278ba153000aebe70970f1eb6a4b3461cb03af
Author: Roman Joost <roman@bromeco.de>
Date:   Sun Jan 13 12:42:28 2013 +1000

    Use a doctest to demonstrate what this thing is about.

commit 8909c7bcb60dc3721d07951b3996af3d003f0be7
Author: Roman Joost <roman@bromeco.de>
Date:   Sun Jan 13 11:27:49 2013 +1000

    Changed signature of the Edge constructor.

    I found the order really hard to keep right when creating edges. I find
    this more natural.

commit a2df1d2239eb91b5fafda9091776ba8a1012336b
Author: Roman Joost <roman@bromeco.de>
Date:   Thu Jan 10 13:46:10 2013 +1000

    Fixed cration of an Edge

commit cd8e9d7440fbf83c3f377912e30c2ac0ff350b79
Author: Roman Joost <roman@bromeco.de>
Date:   Thu Jan 10 13:45:54 2013 +1000

    Keep always at least one assignment target

commit 5b61e1a1d54d6d2c1472d95b3b8732e6f8d160a6
Author: Roman Joost <roman@bromeco.de>
Date:   Thu Jan 10 12:46:46 2013 +1000

    Check the assign to find dependencies.

commit 58983bd5e1867e563c322f9ba2d985481838a5fc
Author: Roman Joost <roman@bromeco.de>
Date:   Thu Jan 10 09:39:45 2013 +1000

    Changed method, which expects Edge instances now.

commit 07b88b982f1b342a587694c82a43d5ce4deb742c
Author: Roman Joost <roman@bromeco.de>
Date:   Wed Jan 9 13:08:18 2013 +1000

    Use the slicing class in the tests

commit 6bc7b663167b975b7690000951a9a16db4a8c7da
Author: Roman Joost <roman@bromeco.de>
Date:   Wed Jan 9 10:45:34 2013 +1000

    Fixed getitem method

commit 195f4afe5b8fe2a9f9a6f247935d4e1fb662c40b
Author: Roman Joost <roman@bromeco.de>
Date:   Wed Jan 9 10:44:46 2013 +1000

    New method to retrieve all edges by name.

    We need that to create references between edges of the same name, e.g.
    between variables on different line numbers

commit 77d70ce655b6e7ce30836791c4fac7841de1fef8
Author: Roman Joost <roman@bromeco.de>
Date:   Wed Jan 9 10:17:08 2013 +1000

    Use the new edges

commit 1a3d334d10bcd7bd13e76c28341fe3fcf81a3e57
Author: Roman Joost <roman@bromeco.de>
Date:   Tue Jan 8 14:47:35 2013 +1000

    Easier to use the Edge as a dictionary key.

    Thanks to
    http://stackoverflow.com/questions/2909106/python-whats-a-correct-and-good-way-to-implement-hash

commit 58022fbc3654acbacd7e79b6fe07e2c08cf24758
Author: Roman Joost <roman@bromeco.de>
Date:   Tue Jan 8 14:24:29 2013 +1000

    Improves, but does not solve checking if we already have the edge

commit 749c8d83e70f9417087c0cc78ec210f9e2b9ca6c
Author: Roman Joost <roman@bromeco.de>
Date:   Tue Jan 8 14:23:44 2013 +1000

    Rich comparison operators and better repr

commit 3b027f993405de6f1f5d4572b320cde3dca7f437
Author: Roman Joost <roman@bromeco.de>
Date:   Tue Jan 8 10:36:39 2013 +1000

    Fixes test

commit 3064e342de83c4090ccc418c2cd23fc06f443c35
Author: Roman Joost <roman@bromeco.de>
Date:   Tue Jan 8 10:19:32 2013 +1000

    Factor out the responsibility for slicing into it's own class

commit d778109820de807b06b1dc4310dd61600d65fe6a
Author: Roman Joost <roman@bromeco.de>
Date:   Tue Jan 8 09:13:08 2013 +1000

    Use full information we can retrieve from a node

commit 05f95f9567c521e0d3eda8ad4445e84c5c220472
Author: Roman Joost <roman@bromeco.de>
Date:   Mon Jan 7 14:20:31 2013 +1000

    Use the edge to hold more information to increase quality #1

commit f241b1077ec798365b14398a93dee6e3b1338955
Author: Roman Joost <roman@bromeco.de>
Date:   Sun Dec 16 20:28:52 2012 +1000

    Bootstrapping edge. #1
Added small disclaimer