ENH: passing colors (and other optional keyword arguments) to violinplot()

I'm really glad that matplotlib now has a `violinplot()` function, but I find the current implementation a bit annoying to customize, since the only way to change the colors, alpha values etc. is to modify each artist after creating the plot. One would ideally want to be able to pass in any arbitrary keyword arguments for the `PolyCollection` and `LineCollection` artists in each individual 'violin', but there's a trade-off between flexibility and simplicity.

I think a reasonable compromise is to have the option to specify individual fill colors for each violin (like the `color` kwarg for `hist()`), but to have only a single dict for all the other optional kwargs for the fills and lines. For the time being I've stuck to the default colors/alpha values in the original implementation, but it might make more sense to leave these defaults unspecified so that they can be set according to `rcParams`.
I can see the reason for separating them, and there is some precedence for it. This plotting function produces a mix of artist types, each of which may need to be stylized differently. If I pass a linewidth argument, am I referring to the width of the lines for the polygon edges or what?
We do this for plt.subplots(), and there isn't even any ambiguity there. We allow for axes kwargs to be its own dictionary, and then remaining kwargs go to the figure constructor.