#51 Post draft comment on popup cancel - for versioned comments
#51 Post draft comment on popup cancel & fix posting general comments

Split CommentsTree into Versioned and General children to make the
code more clear and allow GeneralCommentsTree have updateModel() method.

Always post the comment on balloon close; but if it was closed by
Ctrl+Enter make it non-draft.
align
#51 Publish drafts

Introduce new method of performing actions on comments: not via a
popup menu, but via an active link (like on the crucible site).

Since these links are drawn by a TreeCellRenderer, they don't receive
mouse clicks. To fix this use a custom LinkMouseListenerBase defined
in the CommentsTree: transform mouse cursor coordinates to
coordinates relative for the renderer component, which then checks if
the mouse is above a link or not.

If the mouse is above a link, it returns the type of the link,
and the CommentsTree constructs a CommentAction, which is executed.
After the action is executed, we refresh whatever needed (rebuild the
 model for general comments; refresh the diff viewer for versioned ones)