NDIterator edits

The most important change in this pull request is adding a conversion operator from NDIterator\<Tensor,Tensor::iterator\> to NDIterator\<Tensor,Tensor::const_iterator\>.

I also added various accessor methods and cleaned up the declaration of the external begin and end methods.