Starting work on Linguist overrides

This is pretty rough but `Linguist::Overrides` reads a `.linguist` file (composed of regular expressions and commands) and uses this to both ignore files but also override the language identification.

One major thing to be addressed is that currently Linguist picks up _it's own_ `.linguist` file rather than one for a target test repo/directory.

Some :eyes: on this, especially from @bkeepers would be :sparkles: 
I wonder if bash expansion syntax instead of regular expressions would make more sense here.

```
.file            Assembly
dir/*            ignore
splat/*.o        generated
subdirs/**/*.rb  ignore
multiple.{h,o}   C
```

If we go that route, we should probably look at git's code for matching files in `.gitignore` and `.gitattributes` and be consistent. For example, if you say `filename` in git, I think it will match that in any directory, whereas `/filename` will only match it in the root of the project.