Prepared `StrExt` pattern using methods for stabilization
Made iterator-returning methods return newtypes
Adjusted some docs to be forwards compatible with a generic pattern API
Changed as many `StrExt` methods as possible to be default methods
in order to reduce the surface area of the code and to aid future
refactorings