Consistently use parens around method param lists

There was a mix of styles scattered throughout the codebase:

  def bar boom, bang
    # ...
  end

  def foo(bar, baz, bing)
    # ...
  end

Generally the older methods use the former style and the newer ones use
the latter. The early tendency to eschew params was driven by a desire
to embrace the "Zen of Ruby", which seemed to want to minimize use of
punctuation.

Since then, however, I've come around. The real "Zen" is actually to
minimize the use of punctuation but never to the extent that it reduces
readability. This is why Ruby has postfix conditionals and doesn't
require semi-colons to terminate statements (reduce clutter, improve
flow) but it has plenty of syntax involving punctuation.

In practice, the parens in function parameter lists serve as a useful
and instantly recognizable visual cue. They help readability more than
they introduce clutter.

Having worked on teams now with many non-Ruby programmers coming to
Ruby, I saw the confusion that paren-less method declarations brought.
And a quick survey of some high-profile Ruby projects shows that they
almost universally use parens in their param lists.
Remove spec/vim_formatter.rb

I stopped wanting to run specs inside of Vim a long time ago; Vim wants
to be single-threaded and modal (ha!) so it was never going to be a fun
workflow, and better alternatives exist (tmux, and vim-dispatch, if you
will).

So, remove the outdated formatter class, which doesn't work with the
version of RSpec in our Gemfile.lock anyway:

  $ bundle exec rspec -r ./spec/vim_formatter.rb -f Spec::Runner::Formatter::VimFormatter
  vim_formatter.rb:1:in `require': cannot load such file -- spec/runner/formatter/base_text_formatter (LoadError)
Remove repetitive `self.` in class method declarations

We have three classes/modules that contain no instance methods, only
class methods (and the fact that one of these is a class for which
instantiation is meaningless suggests that it should be a module; I'll
deal with that in a separate commit).

As they are just containers for class methods, get rid of the noise of
the repetitive `self.` in the method declarations by declaring the
methods in the module's metaclasses.
Make CommandT::VIM::Window a module

As noted in the previous commit, this class had no instance methods and
it was meaningless to instantiate an instance of it.

If it's just serving as a namespaced container for methods, it should be
a module. This commit makes it so.
Marginally simplify prefix_len handling

Instead of adding 1 to the prefix handling in multiple places, do it
once only, when initially setting it.

This uncovered a bug in the prefix handling in the `GitFileScanner`,
where we are passing in 0 as a `prefix_len` to the `#path_excluded?`
method, and it was getting bumped to 1, trimming off the first character
in the path and making it pretty much useless.

In testing this I noticed that the `'wildignore'` behavior is
fundamentally different between the `RubyFileScanner` and the other two
scanners that potentially consult `'wildignore'` (the `GitFileScanner`
and the `FindFileScanner`).

The Ruby scanner uses DFS and immediately terminates the recursion on
seeing an ignored path. As a result, if I ignore "node_modules" then I
won't see any files under that directory.

With the other scanners, however, such an ignore would only prevent me
from seeing a file called "node_modules", but not any file rooted
underneath a directory with that name (eg. "node_modules/project/foo").

I hadn't noticed this before because I only ever really use the
`RubyFileScanner` (for small projects) and the `WatchmanFileScanner`
(for large projects).
doc: Document file scanner 'wildignore' differences

Perhaps I knew about these differences once and forgot about it; I just
noticed in preparing the last commit that the "ruby" scanner is not like
"git" or "find".

Document the differences, and update the examples that were using ".git"
and ".hg" (which work as you'd want only with the "ruby" scanner) to
instead use "**/.git/*" and "**/.hg/*" (which will work for all the
scanners except the "watchman" scanner, which doesn't use 'wildignore'
at all).