Violin Plots

This PR implements violin plots.

Violin plots can be used to represent the distribution of sample data. They are similar to box plots, but use a kernel density estimation function to present a smooth approximation of the data sample used.

We wrote this in response to issue #2873 as part of a software engineering course project (the same project as PR #2961's). It's designed to have a call signature similar to boxplot, but some customization options remain to be added.

![violinplot_vert_showextrema](https://cloud.githubusercontent.com/assets/4129406/2751440/523d2e52-c8ce-11e3-85d8-c2e39bf977a8.png)