Extract nearest_ancestor into a module of its own

`PathUtilities` is mixed in in a bunch of places, but only one of those
makes use of the `nearest_ancestor` method.

Stop spraying it around and instead put it in a module of its own that
the controller (alone) includes.
Move CommandT::VIM::PathUtilities out of VIM namespace

Other than a reference to `VIM::pwd`, there's nothing in this module
that makes it belong in the `VIM` namespace (we should reserve that for
extensions to Vim's Ruby runtime API).

So, this commit moves it up a level and updates the `require` statements
(plus adds one missing one, and removes one unnecessary one).
Replace and/or with &&/||

As a matter of hygiene, `and` and `or` are best avoided in typical
conditional contexts (their lower precedence can catch the unwary by
surprise). About the only place I feel they are called for now are
exceedingly rare post-fix statements (eg. `do_something and raise 'foo'`
and the like).

So, replace them with with `&&` and `||`. In addition to providing a
friendlier precedence, these are actually more readable, despite their
superficial ugliness (it's easier for the brain to match symbols amidst
a larger expression than English words among a string of words).

Additionally, change one `while ... do` to `while ...` for consistency;
the `do` is permitted here but best reserved for block (lambda) syntax.
Remove references to multiruby

Sadly, I haven't used multiruby for a long while, so this code has
effectively been dead and unexercised.

It would be nice to replace this with something that is rbenv-aware
instead; I'll add that to my TODO list.
Remove useless hunk from end of command-t.vim

This is a vestige of when we didn't used to use Vim's autoload feature
(we had to abort processing before we got to all the Ruby-specific
code).

Now the Ruby-specific code is in another file, this early-exit clause no
longer serves a purpose, so let's remove it.
Use autoloading for most Ruby classes/modules

We used to use autoloading pervasively up until 0387f20d60a4671a4, where
we removed it because of compatibility problems across different
versions of Ruby on different platforms (specifically, the behavior when
autoloading classes provided by C extensions was divergent across
platforms and Ruby versions).

This commit goes back to using autoloading, but this time only for
classes and modules outside the C extension.

- moved `Finder` subclasses into `Finder` namespace (ie. `BufferFinder`
  becomes `Finder::BufferFinder` etc) and `Scanner` subclasses into
  `Scanner` namespace (ie. `BufferScanner` -> `Scanner::BufferScanner`);
  is more verbose but allows us to push the corresponding autoload
  directives down a layer, keeping the top level `CommandT` module small
- extract `FileLimitExceeded` exception class out into its own file, so
  it too can be autoloaded

Overall, this makes our `require` statements much simpler and will make
it much less likely that we require things that we don't need in the
future.

Note that the changes in namespacing make this diff look bigger than it
really is; view with `git show -b` or similar to see what really changed
(ie. ignoring whitespace).
Add :CommandTLoad command

This command is intended to make extending Command-T via "monkey
patching" easier, by providing an easy way to trigger immediate loading
of the plug-in files, rather than relying on prior lazy loading, or
having to replicate the `LOAD_PATH`-management logic that
`autoload/commandt.vim` provides.

See motivating discussion at:

https://github.com/wincent/command-t/pull/131
DRY up requires of command-t/ext

We can require this in the common superclass (`Finder`) rather than in
all of the subclasses. The other place that needs the extension (the
'watchman' scanner) is invoked from the `FileFinder`, so doesn't need to
`require` it itself directly.
Remove unused debugging macros from watchman.c

The Watchman module is solid at this point, so let's remove the
debugging macros which I haven't had to use since the module was
originally developed.