Add some Shell.* wrappers around bitlash doCommand

Centralizing our interactions with bitlash, and making it easier to use Shell from a sketch.
If something can _never_ return a string and the caller knows this, then this makes sense. But if a command sometimes returns a string and sometimes the empty string, then this is confusing. You cannot tell if the command  returned a number, or printed a number.

Since this code is used for (I think) commands from HQ, this will change behaviour on HQ commands. If we want HQ to display return values, we should make sure that they get communicated separately to HQ, so HQ can decide to display them (and perhaps make a distinction in color or layout so the user knows there was no output).