Gave BasicRules an optional label property

This label now appears in the output of BasicRule.toString, and is useful
for debugging tokenisation problems. This commit also adds labels to the
existing BasicRules in CoqTokenScanner
Correctly handle comment tokens that end with multiple asterisks
BasicRule.State should use Ints, not Chars, in its internal map

This will eventually make it possible for BasicRules to treat the EOF
symbol like any other character
Added syntax highlighting for the "Unset" keyword and for option names
Made the Coqoon UI plugin use the new preference initialisation system

Prior to this commit, Coqoon's default colours weren't configured unless
Kopitiam was also loaded. Presumably this had something to do with the
mysterious "runtime compatibility layer"
Changed the way the auto-indentation code handles proof termination

Proof-terminating sentences are now treated as though they were part of
the proof they terminate, which makes the indentation work more reliably
Don't re-indent "Qed." lines if their indentation is already correct

This was causing the rollback code to run pointlessly