I think on balance I would go for:
* remove (ie deprecate-and-drop) 'singlestep' from the QMP struct,
rather than merely renaming it
* if anybody comes along and says they want to do this via QMP,
implement Paolo's idea of putting the accelerator object
somewhere they can get at it and use qom-get/qom-set on it
[My guess is this is very unlikely: nobody's complained so
far that QMP doesn't permit setting 'singlestep'; and
wanting read without write seems even more marginal.]
* keep the HMP commands, but have both read and write directly
talk to the accel object. I favour splitting the 'read'
part out into its own 'info one-insn-per-tb', for consistency
(then 'info status' matches the QMP query-status)