histograms bins via width/center/boundary

The histogram binning algorithms have been tweaked and the controls changed to use `width/center/boundary` rather than `binwidth/origin`.  `origin` is used only internally now.
My bad.  This is leftover from my test code.  

I've modified this so that if `origin > x_range[1]` it will be shifted by `width`.  This should only happen if we get caught by a bit of accumulated round-off error.  This can be removed if it gets caught somewhere else downstream.