replace fitObs and contourPlotAll calls -> ensemble.runGal in modelConstraintPlot

runGal accomplishes both and also stores the chain to a file for
inspection later. seed parameter ensures the noise realization is the
same for both examples.
replace PA range [0,360) -> [0,180), partially addresses #16
wrap pars in full chain after running sampler

update fit.wrapPars to handle a single pars array or a full chain 2d
array (nSteps x nPars). Call wrapPars on sampler.flatchain after chain
is run in vmapFit, so that the stored values in the chain reflect the
actual wrapped values used in the lnP calculation.

This helps when e.g. plotting the posteriors, since the sampler may
guess a wide range of values for PA, but we really only care about the
wrapped values. Partially addresses #16, but still need to update
likelihood calculation to handle model-data wraps.