Fix for interpreters from samples

While trying to do some refactoring on the shebang detection I realized that the interpreters used in samples was not properly getting added to `samples.json` (see first commit  eccea65) like we do with extensions. It looks like it's been that way since the beginning (https://github.com/github/linguist/commit/7a6202a8c3d667f3476839687f00cfc47c56703a).

This "fixes" it, but exposes a few more issues:

0. We have some samples with undeclared or wrong shebangs (see test failures). Those need fixed before this can be merged.
0. `samples.json` stores extensions/interpreters, but then we have tests that validate that samples don't use extensions (and now interpreters) that are not declared in `languages.yml`. Should we just remove `extensions` and `interpreters` from the cached `samples.json`, update everything to use the language definitions for those, and rely on the tests to validate that samples are using properly declared extensions and interpreters?

/cc @arfon @pchaigno https://github.com/github/linguist/pull/687
Parrot was added in #58 by @leto. He said (https://github.com/github/linguist/pull/58/files#r77240):
> Yes, there is a parrot binary, which can execute .pasm and .pir files. It detects which language via file extension.

So it looks like we would have to support multiple matches if we want to correctly handle this shebang...