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 )
```

Note that arguments and parameters that are passed into the constructor are also passed to `build()`.

I was contemplating saving them in the object as well, but for now I lean toward leaving that up to the topo implementor.