Add functions that transform pmfs.

Rather than work directly with distributions, it is often quicker, simpler to work just with pmfs. This PR adds a number of functions for manipulating pmfs. When we manipulate distributions, we can use these lower level functions, when appropriate (usually the pmf is assumed to consist of linearly distributed probabilities).

Functionality added so far:  Jensen-Shannon divergence (to complement pmf-versions for entropy, relative entropy, and DKL), pmf perturbations, and downsampling a pmf to a grid of some specified depth.

I still need to figure out how to find the n-neighbors when a point is in the interior of a grid cell. Not really sure how the function should behave when the distribution is on a grid line or is a grid point.