Refactor boxplot/violinplot setup

In addition to cleaning up the code (#16) and adding copious tests, this also fixes some problems where not all styles of groupby parameters were being handled correctly by the setup code (#52).