Add build() method to simplify Topo() usage

This is my idea for simplifying `Topo()` subclassing, by introducing a `build()` method which can be overridden in place of `__init__()`. This makes a simple topology look like:

```python
class MyTopo( Topo ):
    def build( self ):
        h1, h2 = self.addHost( 'h1' ), self.addHost( 'h2' )
        s1 = self.addLink( h1, h2 )
```