Seeing as we now will always need to do the following to initialise the decoder:

```go
dec := NewDecoder(r)
dec.Start(3)
dec.Decode()
```

What would you think about just changing the `NewDecoder` constructor instead like so:
```go
const DefaultConcurrency = 0

func NewDecoder(r io.Reader, n uint) *Decoder {
    if n == DefaultConcurrency {
        n = runtime.NumCPU()
    }

    dec := &Decoder{
        r: r,
        inputs: make([]chan<- *OSMPBF.Blob, 0, n)
        outputs: make([]<-chan interface{}, 0, n)
    }
    // Either get rid of Start and have it in this function or make start a package
    // private function as so.
    // dec.start(n)
   return dec
}
```
What do you think?

My reasoning is that it makes the API very slightly easier to use by requiring one less method call to get it working without there being any reduction in functionality.