text: Title: Add KDE functionality to hist and hist2d plots
  Body: I'd like to add KDE (kernel density estimation) functionality for the 1D and 2D histogram plotting functions, `hist`, `hist2d`, and maybe `hexbin`. Users can then optionally add marginal distribution panels with `panel_axes`.
  
  Currently, the only matplotlib plotting function supporting KDE estimation is `violinplot`, but the result is often gross -- the "violins" do not smoothly taper to zero-width tails like in seaborn. Instead they abruptly cut off at the distribution minimum/maximum. So, we shouldn't try to use the existing KDE engine -- we should implement a new KDE estimation engine, similar to seaborn, and use it to power `hist`, `hist2d`, and `violinplot`. This may involve writing a new `violinplot` from scratch.