Command margin colors exposed in settings
Reverting the guard character
Add ability to dump the keyboard

This puts the raw keyboard information into a file that users can email
to me.  This will enable me to better debug some of the keyboard issues
users are seeing that I can't repro locally
Keep VsVim out of Parallel Watch Window

The parallel watch window is labeling itself as a document and hence
VsVim is installing itself there.  This is a single line editor that
shouldn't be hosting a plugin like VsVim.

Long term I'm going to work with the parallel watch team to fix this
bug.  Short term add some logic to prevent VsVim from inserting itself
there.

closes #1490
Only call ShouldCreateVimBuffer once

This code changes Vim so that it only calls ShouldCreateVimBuffer once
per ITextView instance.  The old code didn't cache this result and hence
ended up calling into the host every time.

In general this isn't a problem and results in it being asked a small
number of times.  Certain scenarios like the Command window though use
the editor in such a way that the code path gets excercised a large
number of times (possibly on every key stroke).

The determination is potentially a non-trivial calculation hence caching
the value.

Also it just makes logical sense.  If we allow the host to change their
mind on subsequent calls then it would result in an IVimBuffer with only
a fraction of the services enabled.  The user would just see this as
buggy.  No reason to allow it