Feature/pr211+pr212 const iterator

This combines #211 and #212 

I'll merge this from here as #211 no longer applies as is, so I closed #211 and #212 and am bringing the changes in this way.

Thanks again for making the PR; the changes checked out just find, and sorry for having taken a bit longer than usual.  Real life, and other packages, have a way of getting in the way...