Initial re-based for formatter changes
Use '.format' extension and format code
Optimise preview.
Spaces tab added
Fix CLI build

The CLI compiler complained about the variable not being final; the
Eclipse compiler seems to be a bit more lenient, not complaining if it
detects that the variable is "effectively final".
Small fixes to formatter preview text

- The no-break space didn't work very well (encoding issues)
- There was a space missing
Use public StringBuilderWriter

See 4e4f534.
Formatter config: Remove preview string from code

    "Preview"
    import ceylon.collection { ... }
    // ...

is not valid Ceylon code. The parser can handle it, but when we pass
tokens to the formatter (which we should do, e. g. to preserve
comments), it will detect an unexpected token and throw an exception.
Formatter config: Parse preview only once

We remember the lexed and parsed preview code, avoiding the need to
re-lex and -parse every time it needs to be updated. The preview now
updates almost instantly.

Removes CeylonContentFormatter because with the abstraction of IDocument
removed (I thought about a CeylonParsedDocument that would cache its
parse, but of course it should update that each time its text changes,
so we wouldn't gain anything), there's no point in keeping it.
final on control referenced in Observer
Line and Line Breaks Tab
Merge over Lucas' changes
Updated FormatterPreferences
Fix FormatterPreferences

A Ceylon iterable can't be directly cast to a String array, but luckily
we can just use ceylon.language.String's join (actually getting an array
for use with StringUtils.join would probably be a lot uglier).
Fix init error in formatter config misc tab

Enabling a string preference sets its text, which fires all event
listeners, which in this case wanted to update the preview, which wasn't
available yet because we were still initializing: NPE.

Instead, only disable the preference (this is apparently unproblematic)
when necessary, instead of enabling it when it was already enabled.
Completely fix formatter config inlineAnnotations

The previous fix (677b021) wasn't enough - it still broke when the
option was 'all'. To truly fix this, we need to be able to disable the
text preference when it's created, before its listeners are attached.
(Some other tabs can apparently enable and disable preferences during
initialization without update problems - my best guess is that it's only
problematic for string properties, but I didn't investigate it too
much.)

Also, the handling of this "union" option was pretty broken. Now we
simply display 'all' in the text field when 'all' is checked (which makes
sense because that's what we'll write to the config file). When that
checkbox is unchecked, we insert the default inline annotations into the
textfield.

Also fixes the validity test. It's allowed to declare any annotations as
inline, so we shouldn't have a list of "allowed" annotations; instead,
we now only check if it's a valid annotation name.

Includes a workaround for ceylon/ceylon-spec#1106.
Update preview code of formatter config indent tab

Written in the IDE, then converted to a java-ish "multi-line string"
with

    xclip -o | while IFS='' read line; do echo '+ "'"$line"'\n"'; done

The somewhat contrived 'hash' getter is intended to demonstrate the
effect of the 'indentationAfterSpecifierExpressionStart' option, which
is pretty exotic (intended mainly for hierarchical data structures).
See ceylon/ceylon.formatter#37.
Remove workaround for ceylon/ceylon-spec#1106
Update formatter config line tab (preview, limits)

The minimum amount of line breaks after a line comment must be >= 1,
else we could get invalid code.

Also updates the preview. Converted to java-ish "multi-line string" with

    xclip -o | while IFS='' read line; do echo '+ "'"${line//\"/\\\"}"'\n"'; done

(a bit more complex than in 551b132b because of nested quotes).
Fix formatter config maxLineLength

Similar to 30ce055, except with more problems that I don't quite
understand. (The last part was c.l.Integer vs j.l.Integer confusion,
and which one to use in setMaxLineLength().)