I implemented this approach--it felt much better, but there was still one state that felt wrong (maybe an edge case); if you close the last file (and it's an R code file), the command will be enabled even though there's nothing to set a breakpoint on. The new implementation does this:

- Sets the command to be initially disabled (somewhat arbitrarily in DebugCommander; is there a better way to supply initial states for commands?)
- Keeps the command as a DynamicCommand but explicitly makes it always visible by resetting the visible flag after manageCommands is done (several other commands already do this)