Handle case of n_outputs > n_inputs

@embray I feel the problem with `n_outputs > n_inputs` is relevant to this PR. Consider the following failing example:

```
g1 = models.Gaussian1D(9.4, 3, 1.2)
g2 = models.Gaussian1D(4.4, 2, 1.2)
g3 = models.Gaussian1D(9, 3.3, 1)
m = Mapping((0, 1, 0))
m1 = m | (g1 & g2 & g3)
```
(It may also be relevant to single models but I don't have an example of such a model now.)
This PR suggests a way of fixing the problem, making the assumption that all outputs from a model have the same shape. I think this is a reasonable assumption for now but it certainly may be revisited later.