to use std::distance instead of subtracting iterators, this allows it to work with iterators other than random access. Added more utree docs to Spirit. [SVN r67153]