Make Vdebug fully async - don't block VIM while stepping or running

Make Vdebug fully async - don't block VIM while stepping or running. This allows you to move around your source code, and if your debugging engine supports it, set breakpoints, break, or any supported operation while your code is running. As part of this change, I added support for break command in DBGP.

Justification: I normally debug programs which do not end. As such, without this change, should I not set a breakpoint I could hit by interacting with the program, I was forced to stop and restart the debugging engine to set new breakpoints. With this change, I can set a breakpoint I can hit while the program is not broken, so I can continue debugging.

Note: This is implemented against version 2. I have an implementation for version 1 if that is preferred.