Support debugging multiple threads.

* JavaDebugStep command can read the thread id under cursor if its
  present and invoke stepping on that thread. When thread id is not
  available, then the stepping thread tracked by ThreadContext is used.

* ThreadContext has an API to return the stepping thread.

TODO:
* debug.vim still does not track per thread information for
  debug_step_prev_file and debug_step_prev_line. This is not a big deal
  because it just removes the highlighting from threads that are not
  currently being stepped through.
* All methods in ThreadContext, VariableContext are marked as
  synchronized. Need to find a way to avoid this.