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 remains to be added.

![test_vert_violinplot_showextrema](https://cloud.githubusercontent.com/assets/4129406/2749696/edd71b7a-c81a-11e3-9394-1dc41e111bd3.png)