Have an XVimView much like we have an XVimBuffer

+[XVimView initialize] swizzles NSTextView like we used to do on the DVT
one. Nothing was really DVT speciic in the DVTSourceTextViewHook in the
first place. The swizzling does nothing if there is no XVimView associated
with the NSTextView, or if XVim is disabled.  All that is non specific to
XCode.

Rewrite IDEEditorHook as an IDEEditor+XVim category with swizzling.
In the -didSetupEditor override, detect when there are
DVTSourceTextView's that are the one we know what to do with.

Check their document has a file:// URL (so that the script editor in the
Xcode rules are ignored). If the textStorage happens to already be
created, allocate the XVimBuffer right away.

In theory we would have to check when the document for a given TextView
changes whether we still support XVim, but XCode actually destroys and
recreates the view each time you switch documents, so it doesn't matter.