Initial cut of a spreading and generic scheduler.

Missing a push?

I was hoping lines like this 

```{api.Pod{Labels: labels1}, []api.Pod{{CurrentState: machine1State, Labels: labels2}, {CurrentState: machine1State, Labels: labels1}, {CurrentState: machine2State, Labels: labels1}, {CurrentState: machine2State, Labels: labels1}}, []string{"machine1", "machine2"}, false, []HostPriority{{"machine1", 1}, {"machine2", 2}}, "three label matches"},```

would get changed into

```
{
  pod: api.Pod{Labels: labels1},
  pods: []api.Pod{
    {CurrentState: machine1State, Labels: labels2},
    {CurrentState: machine1State, Labels: labels1},
    {CurrentState: machine2State, Labels: labels1},
    {CurrentState: machine2State, Labels: labels1},
  },
  nodes: []string{"machine1", "machine2"},
  expectErr: false, 
  expectedList: []HostPriority{{"machine1", 1}, {"machine2", 2}},
  name: "three label matches"
},
```

Because I can't make head or tails of everything all smushed together on one line.

I think the "you'll get used to it" was aimed at table testing in general :)