Remove mixin magic

The previous API was a little too clever; it wouldn't necessarily be
understandable to new developers. It also had technical limitations: it
made it impossible to alter the data passed to mixin constructors, and
it necessarily made assumptions about how mixins should be inserted into
the base chart.