Subclassing from str simplifies things a little (logically, sys.ps1 and
sys.ps2 should be strings which happen to have some funny logic attached
rather than being objects with a string attribute). I did have to fiddle
with the reprs, though.

Problem: I can't just do repr(str(self)) for Prompt because the logic to
push a value into h is in __str__. Is there a hidden attribute I can use
to query the text content of a str from WITHIN the str without invoking
the __str__ magic method?