vim: improve projectionist heuristics
vim: improve projectionist heuristics

The previous approach used a '*' to set mappings for all projects. This
was an overly blunt approach that had the side-effect of discovering
project "roots" for the current directory all the way up to the root of
the file system. I only realized this when I saw that 'tags' contained
entries all the way up to `//tags`.

This new approach is more specific and "correct" in that it introduces
its mappings based on project-level file detection. For example, Elixir
projects are identified by a `mix.exs` file in their root. Other cases
are less exact, such as enabling Go mappings whenever a `src/` directory
is found; matching against `src/**/*.go` proved too slow on large
projects, and a false-positive isn't a big deal.

jparise/dotfiles,jparise/dotfiles,jparise/dotfiles,jparise/dotfiles