debug: Improve threads handling
- Fix threads getting cleared if the "threads" request returns an error
- Some servers may not send threads at all if the debugee isn't paused making our UI useless. Thus we need to take into account both "threads" request and the "thread event".
- update threads properly on thread event i.e., remove/add them according to their state.
- The current thread is now managed from the UI, you select the thread that you want to be current. First thread is selected by default.