Migrate `next_*` methods to return `Option`
In the Rust standard library, the `next` method on the `Iterator` trait returns an `Option`. Prior to this commit, the `next` and `next_*` methods return `Err<_, ()>`. In an attempt to make some of the code more idiomatic, I migrated these methods to return `Option` instead.