Allow BasicRules to transition between states on an EOF

At the moment, only a single EOF transition can be made before the
evaluation loop gives up; this is a lazy way of avoiding infinite loops
Added a partition processor for Coq documents

Coq documents are now split into Coq, comment and string regions
Use different token scanners for different Coq document regions

This commit also restricts the operation of CoqAutoEditStrategy to Coq
regions
Use a ForwardingDocumentProvider to configure Coq documents
Made CoqPartitionScanner better at handling damaged regions

The behaviour still isn't actually good yet, though, so this commit leaves
in lots of debugging console output
Use the correct identifiers for Coq partitions and content types

This makes the automatic code completion work properly in Coq partitions
Made the Coq partitioner ignore meaningless content types and offsets
Made the PartitionFinalState.offsetCorrection method less mysterious

This commit changes this method's name and documents what it's for, which
are both good
Calling CoqPartitionScanner.setRange should clear the previous token

This stops the scanner from intermittently returning weird, incoherent
information
Don't bother to perform any token scanning on comment regions

Comment regions only need a single text presentation, so always returning
the comment text attribute token seems like a suitably lazy way of
performing syntax highlighting
Keep the current state up-to-date when partitioning Coq documents

Prior to this commit, the current state and last final state could get out
of sync, accidentally allowing illegal transitions like String -> Comment
Revert "Allow BasicRules to transition between states on an EOF"

This reverts commit 14aaa6d33339b7722c9eba80be2487a53e4ad42a, which is no
longer necessary now that Coq documents are appropriately partitioned
Don't bother to perform any token scanning on string regions

This builds on commit 8924b769728370ece0089e8332335d3a2598ca34 by grabbing
as many characters as possible before returning a token, which should make
the highlighting a bit snappier. The same technique is now also used for
comment regions