Refactored str Iterators to use DoubleEnded Iterators and typedefs instead of wrapper structs