Replace DebugString with a well defined type returned by Describe

This harmonises all the different debug strings, makes adding new iterators easier and allows mechanical analysis of descriptions (pretty descriptions in the ui might be nice one day).