Code refactor.

- Got rid off unwanted state information.
Incremental status updates.

- When thread updates are received by ThreadEventHandler, it only sends
those incremental updates instead of refreshing the whole debug status
window.

- When a thread is being stepped through, the complete set of variables
  are sent over to VIM.

VIM commands: These are internal commands used only by VimClient.
It is not meant for users.
- :JavaDebugThreadViewUpdate: Updates thread window.
- : JavaDebugVariableViewUpdate: Updates variable window.
- :JavaDebugSessionTerminated: Cleans up debug status window once
  session terminates.
New command to get detail view of a variable.

- JavaVariableDetail: The toString value of the Java object is displayed on
the status line.
Bug fix for variable disappearing from variable window.

If the fold is opened first and then value expand command is given,
then the value gets removed. This is becasue VIM fold requires the fold
to be opened before manipulating the entries under it.
New mapping to toggle breakpoint.

- When cursor is placed in breakpoint window, and the key <t> is pressed,
the breakpoint is either enabled or disabled. A sign is placed if its
enabled.

- Misc: Changed internal function names to use script local reference
  using s:

TODO: Load the signs when the breakpoints are loaded in the window.
Fixed the command exists check to look for return value of 2.

This is to make sure that the command comparison check is absolute.
Otherwise, if you define a command TestCommandExtra first followed by
TestCommand, then the exists check will return 1 for 2nd command as its
a partial match. So the 2nd command will not get defined.
So we need an exact match which is done by checking for value = 2.
Place sign for enabled breakpoints on load.
Log exception if a command fails.
Bug fix for breakpoint toggle and variable window updates.

These are temporary workarounds.

Breakpoint window
- Project name is displayed as part of location list. This is sent
  back while toggling breakpoint.
- But for some projects, ICompilationUnit of a file is not
  existing. So we iterate over all breakpoints and toggle the matching
  one. If this does not match, then use the old way of querying using
  project name and file name.

Variable window update
- For some reason, VIM buffers a remote command instead of executing it.
  This is happening when we send updates to variable window. The first
  update clears the screen and the second update sends the new set of
  variables. But 2nd update gets buffered in some cases. To workaround
  this, we send another remote command to echo an empty string. This
  forces VIM to execute the previous command.
Delete breakpoint from breakpoint window.

- The 'd' key can now be used to delete breakpoint. The option to remove
  the breakpoint is only available from the breakpoint window.

- Added help menu for breakpoint, thread and variable windows.