clarifying iterator trait documentation

I found these things to be ambiguous, or at least worth stating explicitly to reduce the amount a user/developer needs to think about the API.
"None" should use backticks, e.g. \`None\`. Also, this documentation here is primarily aimed at the user instead of the implementor. This could be rephrased as

> Returns a lower and upper bound on the remaining length of the iterator.
> An upper bound of `None` means either there is no known upper bound, or the upper bound
> does not fit within a `uint`.