Added a preference controlling the width of each indentation level

This preference is now used by both the auto-indentation code and the block
indentation code, although there's no UI for changing it yet
Added a preferences page for Coq source code formatting
Added a preference for switching automatic identation on and off
Correctly retract sentences that have been merged by an edit

Prior to this commit, Coqoon had problems with an edit that transformed the
two sentences "Foo. Bar." into the single sentence "Foo.Bar" -- only the
second sentence would be retracted, producing possibly confusing results
down the line. (I'm almost sure I fixed this problem at some point in the
past, but I can find no evidence of that. Oh, well...)
All Coqoon and Kopitiam preference pages should use the grid style

This commit also tidies up the accessor for the Coq path preference value
Added a new-fangled preference initialiser to the Coqoon core plugin

I've also taken this opportunity to add a crazy new feature: Coqoon will
now try to guess where the Coq binary might be and uses the result as the
default value of that property
Added a preference for enabling and disabling strict namespace enforcement

Two caveats: this preference isn't used by anything at the moment, so its
UI is disabled; and I expect it'll go away entirely once we've worked out
what a sensible namespace enforcement policy would look like. For testing
purposes, though, this will come in handy
Added a preference for enabling and disabling coqtop protocol traces

Enabling this new option will cause messages to and from coqtop to be
copied to standard output, which should make it easier to work out what's
gone wrong when the ideslave protocol changes
Added a documentation tooltip to the Coq path preference field
Made CoqLoadPath respect the namespace enforcement preference

Since some libraries always need to be loaded recursively (like the Coq
standard library), this commit also adds an extra parameter to the
constructor which can be used to override the preference value
Made "Require" resolution compatible with strict namespace enforcement

Nearly there! The only problem left to solve (ha! famous last words) is
that libraries compiled with strict namespace enforcement have the wrong
coqdir, but that's just a matter of adding another -I when invoking the
compiler
Added a method to ICoqPackageFragmentRoot for retrieving coqdir names

For the sake of consistency with the CoqLoadPath.expand method, this new
method represents coqdir names as a sequence of string components
Added a mandatory coqdir parameter to CoqCompileRunner

This parameter is necessary in strict namespace enforcement mode in order
to make sure the resulting library has the right coqdir -- and, as luck
would have it, it's harmless when namespaces aren't being enforced
Enabled the user interface for enabling and disabling namespace enforcement

Don't get too used to this option, though! As I mentioned in commit
00011135d2f491afa5c2d6ab6cfa74af340584c9, this is only a temporary measure
while we try to work out how namespace enforcement should work
Optionally print debugging messages whenever coqtop is started

This commit also rewords the preference's description to indicate that this
extra information will also be included