Generalize String runner

To work as the backend for both the other two runners
Update examples
Make runner results actually a list

Before this, they were always a list of length 1