Make pipeline stages take their config explicitly.

There are a couple other significant things here, most notably that the
way you create a Pipeline is different, but the Pipeline object is much
less dependent on having the dictionary-format configuration pushed into it.