Initial commit for distribution package. Contains Exponential, Laplace, ...

...Normal, and Uniform
@cjslep @kortschak I started the change to the signature of 
```go
FitPrior(samples, weights, strength []float64)
```
I now think that's a mistake, and instead it should be two functions with a name change
```go
ConjugateUpdate(suffStat []float64, nSamples float64, priorStrength []float64)
SuffStat(samples, weights []float64, suffStat []float64) (nSamples float64)  // suffStat updated in place
```
This accomplishes a couple of things. First, "FitPrior" is more general than what the function actually accomplishes. It doesn't fit parameters from an arbitrary prior, it updates the parameters based on the maximum likelihood of a conjugate prior. Second, "Update" is a better word than fit as it makes it clear the distribution will be changed. Third, it decouples the samples themselves from the sufficient statistics. This is useful as several members of the exponential family can incorporate incomplete knowledge into the update.  For example, the exponential distribution can use data where you know that it's been at least X long. This sort of information is impossible to encode with just samples, weights. This allows a specialized SuffStatUnobserved function which gives an alternate set of sufficient statistics. Fourth, this has a number of auxiliary benefits, like keeping the functions more orthogonal, and allowing users to save computation time if they already have the sufficient statistics computed.

Thoughts?