add an iterator size hint

I ran into a weird lifetime bug blocking updating the `collect` method to use `FromIterator`, but everything here works fine.