Reorder string quasi-lifecycle functions to ensure string dtor called by all static-inline implementations.
This situation is not exercised currently, but will be, upon upcoming string-overload reorganizations. Incumbent tests are adequate to show if a static-inline change misses the custom dtor: have observed "allocated but not freed" failures from test.py.
Doing this code-move ahead of the string-overload reorganizations keeps them more standalone.