Merge pull request #215 from igrekster/master

Refactoring a bunch of features
Merge pull request #216 from igrekster/master

Update unit tests
Update unstable update site with a bunch of changes I haven't actually
tested.
Merge pull request #217 from igrekster/master

Surround customization command.
Work on #218: replace status line with SWT widget.

The :tabs command needs to write its multi-line output to the command line buffer,
but this wasn't so much a buffer as it was custom drawing code rendering a string.

Since it's no use re-inventing line wrapping, the status line will now use a
StyledText widget to render its contents. As a bonus, this should allow us to add
a context menu with Copy / Paste / Select all functionality.
Work on #218 by setting status line font and caret.
Work on #218: rename StatusLine class to CommandUIFactory.
Work on #218: Add new interface for command line view.
Fix NullPointerException for ReplaceDelimiterMode.

Order of mode.enterMode(...) and mode.getDisplayName() reversed,
surround code depended on enterMode being called first.

Document order of operations in interface.
Close #219 : display mode wrong after recursive changeMode call.

The variable currentMode might have been reset when mode entry changed
the editor mode *again*. Make sure to set the mode of the UI to this
newer mode.

Based on original commit of @igrekster.