Another non-breaking possibilty would be to check whether or not the
stub replies an error to "vCont;s" (or the deprecated "s" packet), but
this would then make the "s;S" vCont? kind of reply useless.
We can extend .to_can_do_single_step interface a little to get more
information. Current .to_can_do_single_step only returns true if we
definitely know the target can do single-step, otherwise return false.
The change .to_can_do_single_step returning tribool (unknown, true and
false). true/false means we definitely know the target can/can't do
single-step, unknown means we don't know that. In arm-none-eabi target,
we only use software single step if .to_can_do_single_step returns
false. In arm-linux target, we only use hardware single step if
.to_can_do_single_step returns true.